summaryrefslogtreecommitdiffstats
path: root/src/model.h
diff options
context:
space:
mode:
authoradiblol <adiblol@1tbps.org>2012-03-08 19:32:05 +0100
committeradiblol <adiblol@1tbps.org>2012-03-08 19:32:05 +0100
commita4c804b49ec872b71bd5a0167c3ad45704a3cc30 (patch)
tree8c931235247d662ca46a99695beb328fdfc8e8a8 /src/model.h
downloadcolobot-a4c804b49ec872b71bd5a0167c3ad45704a3cc30.tar.gz
colobot-a4c804b49ec872b71bd5a0167c3ad45704a3cc30.tar.bz2
colobot-a4c804b49ec872b71bd5a0167c3ad45704a3cc30.zip
Initial commit, Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
Diffstat (limited to 'src/model.h')
-rw-r--r--src/model.h118
1 files changed, 118 insertions, 0 deletions
diff --git a/src/model.h b/src/model.h
new file mode 100644
index 0000000..2f686ee
--- /dev/null
+++ b/src/model.h
@@ -0,0 +1,118 @@
+// model.h
+
+#ifndef _MODEL_H_
+#define _MODEL_H_
+
+
+class CInstanceManager;
+class CD3DEngine;
+class CModFile;
+class CInterface;
+
+
+
+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, D3DVERTEX2 &vertex);
+ BOOL SetVertex(int rank, D3DVERTEX2 &vertex);
+ D3DVECTOR RetSelectCDG();
+ D3DVECTOR RetSelectNormal();
+ void SmoothSelect();
+ void PlaneSelect();
+ void ColorSelect();
+ void StateSelect();
+ void MoveSelect(D3DVECTOR move);
+ void OperSelect(D3DVECTOR move, char oper);
+ void ReadScript(char *filename);
+ void BBoxCompute(D3DVECTOR &min, D3DVECTOR &max);
+ BOOL IsMappingSelectPlausible(D3DMaping D3Dmode);
+ void MappingSelect(int mode, int rotate, BOOL bMirrorX, BOOL bMirrorY, FPOINT ti, FPOINT ts, char *texName);
+ void MappingSelectSpherical(int mode, int rotate, BOOL bMirrorX, BOOL bMirrorY, FPOINT ti, FPOINT ts, char *texName);
+ D3DVECTOR RetMappingCenter(D3DVECTOR pos, D3DVECTOR min);
+ void MappingSelectCylindrical(int mode, int rotate, BOOL bMirrorX, BOOL bMirrorY, FPOINT ti, FPOINT ts, char *texName);
+ void MappingSelectFace(int mode, int rotate, BOOL bMirrorX, BOOL bMirrorY, FPOINT ti, FPOINT 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;
+ CD3DEngine* 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;
+ FPOINT m_textureInf;
+ FPOINT 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;
+};
+
+
+#endif //_MODEL_H_