⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modelviewer.h

📁 wowmodelview魔兽世界的模型查看工具。下了看看吧
💻 H
字号:
#ifndef MODELVIEWER_H
#define MODELVIEWER_H

// wx
#include "wx/wx.h"
#include "wx/filename.h"
#include "wx/fileconf.h"
#include "wx/treectrl.h"
#include "wx/colordlg.h"
#include "wx/msgdlg.h"

//wxIFM
#include <wx/ifm/ifm.h>

// Our files
#include "modelcanvas.h"
#include "animcontrol.h"
#include "charcontrol.h"
#include "viewcontrol.h"
#include "aboutframe.h"
#include "mpq.h"
#include "util.h"
#include "gifexporter.h"
#include "effects.h"

enum
{
	ID_MODELVIEWERFRAME = 2000,
    ID_EXIT,
	ID_SCREENSHOT,
	ID_EXPORTGIF,
	ID_TEXIMPORT,
	ID_TEXEXPORT,
	ID_FILELIST,

	ID_SHOW_FILE_LIST,
	ID_SHOW_ANIM,
	ID_SHOW_CHAR,
	ID_SHOW_VIEW,

	ID_SHOW_MODEL,
	ID_SHOW_MASK,

	ID_SHOW_BONES,
	ID_SHOW_BOUNDS,
	ID_SHOW_PARTICLES,
	ID_USE_CAMERA,
	//ID_USE_LIGHTS,

	ID_LT_AMBIENT,
	ID_LT_DIRECTIONAL,
	ID_LT_MODEL,
	ID_LT_COLOR,
	ID_LT_DIRECTION,
	
	ID_BACKGROUND,
	ID_BG_COLOR,
	ID_SKYBOX,

	ID_CANVASSIZE,
	ID_CANVAS120,
	ID_CANVAS512,
	ID_CANVAS640,
	ID_CANVAS800,
	ID_CANVAS1024,
	ID_CANVAS1280,
	ID_CANVAS1600,

	ID_ZOOM_IN,
	ID_ZOOM_OUT,

	ID_ENCHANTS,
	ID_SPELLS,
	ID_EQCREATURE_R,
	ID_EQCREATURE_L,

	ID_RANDOM_CHARS,
	ID_RANDOM_SKINS,
	ID_USENPCSKINS,
	ID_DEFAULT_DOODADS,
	ID_DATAPATH,
	ID_USEPATCH,
	ID_USETESTPATCH,
	ID_USELOCALFILES,
	//ID_RESET,

	ID_NLP,
	ID_ELP,
	ID_FLP,
	ID_GLP,
	ID_LOCALE,
	ID_HELP,
	ID_ABOUT,

	ID_MOUNT_CHARACTER
};

class ModelViewer: public wxFrame
{    
    DECLARE_CLASS(ModelViewer)
    DECLARE_EVENT_TABLE()
	
	// wxIFM (Interface Frame Manager) objects
	wxInterfaceManager *interfaceManager;
	wxIFMDefaultChildData *fileListPanel, *animControlPanel, *charControlPanel, *viewControlPanel;

	set<string> filelist;
	vector<MPQArchive*> archives;	
	// save + load character
	void SaveChar(const char *fn);
	void LoadChar(const char *fn);
public:
	// our class objects
	AnimControl *animControl;
	ModelCanvas *canvas;
	CharControl *charControl;
	ViewControl *viewControl;
	GifExporter *gifExporter;
	EnchantsDialog *enchants;

	//wxWidget objects
	wxMenuBar *menuBar;
	wxMenu *charMenu, *viewMenu, *optMenu;
	wxTreeCtrl *fileTree;

	bool isModel;
	bool isChar;

	ModelViewer();
	~ModelViewer();
	ModelViewer(wxWindow* parent, wxWindowID id = -1, const wxString& caption = _T("ModelViewer"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU);
	bool Create(wxWindow* parent, wxWindowID id = -1, const wxString& caption = _T("ModelViewer"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU);
	
	void InitMenu();
	void InitObjects();
	void Init();

	void LoadSession();
	void SaveSession();

	void OnClose(wxCloseEvent &event);
	void OnSize(wxSizeEvent &event);
    void OnExit(wxCommandEvent &event);
	void OnTreeSelect(wxTreeEvent &event);

    // menu commands
	void OnToggleDock(wxCommandEvent &event);
	void OnToggleCommand(wxCommandEvent &event);
	void OnSetColor(wxCommandEvent &event);
	void OnEffects(wxCommandEvent &event);

	void OnSetEquipment(wxCommandEvent &event);
	void OnCharToggle(wxCommandEvent &event);

	void OnMount(wxCommandEvent &event);
	void OnSave(wxCommandEvent &event);
	void OnBackground(wxCommandEvent &event);
	void OnLanguage(wxCommandEvent &event);
	void OnAbout(wxCommandEvent &event);
	void OnCanvasSize(wxCommandEvent &event);
   
	Vec3D DoSetColor(const Vec3D &defColor);
};


bool filterModels(string);
bool filterNpcs(string);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -