diff options
Diffstat (limited to 'src/graphics/common/model.h')
-rw-r--r-- | src/graphics/common/model.h | 117 |
1 files changed, 116 insertions, 1 deletions
diff --git a/src/graphics/common/model.h b/src/graphics/common/model.h index a086c73..d67c71a 100644 --- a/src/graphics/common/model.h +++ b/src/graphics/common/model.h @@ -19,9 +19,124 @@ #pragma once +#include "engine.h" +#include "common/struct.h" +#include "common/event.h" +#include "modfile.h" +#include "vertex.h" +#include "math/point.h" + + +class CInstanceManager; +class CModFile; +class CInterface; + namespace Gfx { -// TODO CModel +class CEngine; + + +class CModel { + public: + CModel(CInstanceManager* iMan); + ~CModel(); + + void StartUserAction(); + void StopUserAction(); + + bool EventProcess(const Event &event); + + void InitView(); + void InitViewFromSelect(); + void UpdateView(); + void ViewMove(const Event &event, float speed); + + protected: + bool EventFrame(const Event &event); + bool GetVertex(int rank, Gfx::VertexTex2 &vertex); + bool SetVertex(int rank, Gfx::VertexTex2 &vertex); + Math::Vector RetSelectCDG(); + Math::Vector RetSelectNormal(); + void SmoothSelect(); + void PlaneSelect(); + void ColorSelect(); + void StateSelect(); + void MoveSelect(Math::Vector move); + void OperSelect(Math::Vector move, char oper); + void ReadScript(char *filename); + void BBoxCompute(Math::Vector &min, Math::Vector &max); + bool IsMappingSelectPlausible(Gfx::Mapping D3Dmode); + void MappingSelect(int mode, int rotate, bool bMirrorX, bool bMirrorY, Math::Point ti, Math::Point ts, char *texName); + void MappingSelectSpherical(int mode, int rotate, bool bMirrorX, bool bMirrorY, Math::Point ti, Math::Point ts, char *texName); + Math::Vector RetMappingCenter(Math::Vector pos, Math::Vector min); + void MappingSelectCylindrical(int mode, int rotate, bool bMirrorX, bool bMirrorY, Math::Point ti, Math::Point ts, char *texName); + void MappingSelectFace(int mode, int rotate, bool bMirrorX, bool bMirrorY, Math::Point ti, Math::Point ts, char *texName); + void MappingSelect2(int texNum2, int subdiv, int offsetU, int offsetV, bool bMirrorX, bool bMirrorY); + void MappingSelectPlane2(int mode, bool bMirrorX, bool bMirrorY); + void MappingSelectSpherical2(bool bMirrorX, bool bMirrorY); + void MappingSelectMagic2(bool bMirrorX, bool bMirrorY); + int SearchNext(int rank, int step); + int SearchSamePlane(int first, int step); + void CurrentSearchNext(int step, bool bControl); + void CurrentInit(); + void CurrentSelect(bool bSelect); + void DeselectAll(); + void SelectAll(); + void SelectZone(int first, int last); + void SelectTerm(); + void DefaultSelect(); + void SelectDelete(); + void Compress(); + void MinMaxSelect(); + void MinMaxChange(); + void UpdateInfoText(); + int* RetTextureTable(); + void TexturePartUpdate(); + void TextureRankChange(int step); + void TexturePartChange(int step); + void PutTextureValues(); + void GetTextureValues(); + void GetModelName(char *buffer); + void GetDXFName(char *buffer); + void GetScriptName(char *buffer); + bool IsEditFocus(); + + protected: + CInstanceManager* m_iMan; + Gfx::CEngine* m_engine; + CModFile* m_modFile; + CInterface* m_interface; + + float m_time; + ModelTriangle* m_triangleTable; + int m_triangleSel1; + int m_triangleSel2; + int m_mode; + int m_textureMode; + int m_textureRotate; + bool m_bTextureMirrorX; + bool m_bTextureMirrorY; + Math::Point m_textureInf; + Math::Point m_textureSup; + int m_texturePart; + int m_textureRank; + char m_textureName[20]; + bool m_bDisplayTransparent; + bool m_bDisplayOnlySelection; + float m_viewHeight; + float m_viewDist; + float m_viewAngleH; + float m_viewAngleV; + int m_color; + int m_state; + int m_secondTexNum; + int m_secondSubdiv; + int m_secondOffsetU; + int m_secondOffsetV; + char m_oper; + float m_min; + float m_max; +}; }; // namespace Gfx |