Develop and Download Open Source Software

Browse Subversion Repository

Contents of /trunk/CCustomizer.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (show annotations) (download) (as text)
Sun Aug 15 01:53:13 2010 UTC (13 years, 9 months ago) by okadu
File MIME type: text/x-chdr
File size: 2500 byte(s)


1 #ifndef CCUSTOMIZER_H_INCLUDED
2 #define CCUSTOMIZER_H_INCLUDED
3
4 class CTextureAnimation;
5 class CModelPlugin;
6
7 // タイプフラグ
8 const int CSTM_MISCELLANEOUS = 0x0001;
9 const int CSTM_MODELCHANGER = 0x0002;
10 const int CSTM_MODELMOVER = 0x0004;
11
12 /*
13 * ムーバー状態変数
14 */
15 class CMoverState{
16 private:
17 VEC3 m_Pos; // 位置
18 VEC3 m_Dir; // 方向
19 public:
20 CMoverState(){ Reset(); }
21 void Reset(){ m_Pos = V3ZERO; m_Dir = V3DIR; }
22 VEC3 GetPos(){ return m_Pos; }
23 VEC3 GetDir(){ return m_Dir; }
24 void SetPos(const VEC3 &pos){ m_Pos = pos; }
25 void SetDir(const VEC3 &dir){ m_Dir = dir; }
26 char *Read(char *);
27 void Save(FILE *, char *);
28 };
29
30 // 反復子
31 typedef list<CMoverState>::iterator IMoverState;
32 typedef list<CMoverState *>::iterator IPMoverState;
33
34 ////////////////////////////////////////////////////////////////////////////////
35 ////////////////////////////////////////////////////////////////////////////////
36
37 /*
38 * カスタマイザ基本クラス
39 */
40 class CCustomizerBase{
41 protected:
42 // static CNamedObject *ms_CurrentObject; // 現在のオブジェクト
43 public:
44 // static void SetObject(CNamedObject *obj){ ms_CurrentObject = obj; }
45 virtual ~CCustomizerBase(){}
46 virtual CCustomizerBase *Duplicate() = 0;
47 virtual void LoadDataCustomizer(CModelPlugin *){}
48 virtual void SetOffListCustomizer(CNamedObject *){}
49 virtual void ResetOffCustomizer(int){}
50 virtual int GetTypeFlagCustomizer(){ return CSTM_MISCELLANEOUS; }
51 virtual CMesh *GetMeshCustomizer(float *asc){ return NULL; }
52 virtual void SetPostureCustomizer(CObject *){}
53 virtual void ApplyCustomizer(CMesh *){}
54 };
55
56 // 反復子
57 typedef list<CCustomizerBase *>::iterator IPCustomizerBase;
58
59 /*
60 * カスタマイザコンテナ
61 */
62 class CCustomizerContainer{
63 private:
64 CCustomizerBase *m_Customizer; // カスタマイザ
65 public:
66 CCustomizerContainer();
67 CCustomizerContainer(const CCustomizerContainer &);
68 ~CCustomizerContainer();
69 char *Read(char *, CModelPlugin *);
70 void LoadData(CModelPlugin *mpi){ m_Customizer->LoadDataCustomizer(mpi); }
71 void SetOffList(CNamedObject *nobj){ m_Customizer->SetOffListCustomizer(nobj); }
72 int GetTypeFlag(){ return m_Customizer->GetTypeFlagCustomizer(); }
73 CMesh *GetMesh(float *asc){ return m_Customizer->GetMeshCustomizer(asc); }
74 void SetPosture(CObject *obj){ m_Customizer->SetPostureCustomizer(obj); }
75 void Apply(CMesh *mesh){ m_Customizer->ApplyCustomizer(mesh); }
76 };
77
78 // 反復子
79 typedef list<CCustomizerContainer>::iterator ICustomizerContainer;
80
81 #endif

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26