Develop and Download Open Source Software

Browse Subversion Repository

Contents of /trunk/CCustomizerMover.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3 - (show annotations) (download) (as text)
Tue Nov 23 14:34:03 2010 UTC (13 years, 5 months ago) by okadu
File MIME type: text/x-chdr
File size: 3516 byte(s)
[okadu] Version 2.13
1 #ifndef CCUSTOMIZERMOVER_H_INCLUDED
2 #define CCUSTOMIZERMOVER_H_INCLUDED
3
4 #include "CCustomizer.h"
5
6 /*
7 * 移動子基本クラス
8 */
9 class CMoverBase: public CCustomizerBase{
10 private:
11 CMoverState **m_State; // 状態変数
12 CMoverState m_PreviewState; // プレビュー用状態変数
13 public:
14 CMoverBase(){ m_State = NULL; }
15 virtual CCustomizerBase *Duplicate() = 0;
16 virtual void SetOffListCustomizer(CNamedObject *){}
17 virtual void ResetOffCustomizer(int){}
18 int GetTypeFlagCustomizer(){ return CSTM_MODELMOVER; }
19 virtual void SetPostureCustomizer(CObject *) = 0;
20 void InitMover(CModelPlugin *);
21 CMoverState *GetState(){ return *m_State ? *m_State : &m_PreviewState; }
22 };
23
24 /*
25 * 移動子基本クラス
26 */
27 class CDynamicMoverBase: public CMoverBase{
28 protected:
29 int m_ApplyFlag; // 適用フラグ
30 public:
31 virtual CCustomizerBase *Duplicate() = 0;
32 virtual void SetOffListCustomizer(CNamedObject *);
33 void ResetOffCustomizer(int);
34 virtual void SetPostureCustomizer(CObject *) = 0;
35 };
36
37 /*
38 * 静的移動子基本クラス
39 */
40 class CStaticMoverBase: public CDynamicMoverBase{
41 protected:
42 float m_AnimationTime[6]; // アニメーション時間
43 public:
44 virtual CCustomizerBase *Duplicate() = 0;
45 char *ReadTimingInfo(char *);
46 virtual void SetPostureCustomizer(CObject *) = 0;
47 float ProcDelay();
48 };
49
50 ////////////////////////////////////////////////////////////////////////////////
51 ////////////////////////////////////////////////////////////////////////////////
52
53 /*
54 * 静的回転子
55 */
56 class CStaticRotator: public CStaticMoverBase{
57 private:
58 float m_RotationAngle; // 回転角度
59 VEC3 m_RotationAxis; // 回転軸
60 public:
61 CCustomizerBase *Duplicate(){ return new CStaticRotator(*this); }
62 char *Read(char *, CModelPlugin *);
63 void SetPostureCustomizer(CObject *);
64 };
65
66 /*
67 * 静的移動子
68 */
69 class CStaticMover: public CStaticMoverBase{
70 private:
71 VEC3 m_Displacement; // 変位
72 public:
73 CCustomizerBase *Duplicate(){ return new CStaticMover(*this); }
74 char *Read(char *, CModelPlugin *);
75 void SetPostureCustomizer(CObject *);
76 };
77
78 /*
79 * 動的回転子
80 */
81 class CDynamicRotator: public CDynamicMoverBase{
82 private:
83 float m_RotationSpeed; // 回転角度
84 float m_Acceleration; // 加速度
85 float m_Deceleration; // 減速度
86 VEC3 m_RotationAxis; // 回転軸
87 public:
88 CCustomizerBase *Duplicate(){ return new CDynamicRotator(*this); }
89 char *Read(char *, CModelPlugin *);
90 void SetPostureCustomizer(CObject *);
91 };
92
93 /*
94 * 風トラッカ
95 */
96 class CWindTracker: public CMoverBase{
97 private:
98 float m_TrackSpeed; // 追跡速度
99 bool m_FixAxisFlag; // 軸固定フラグ
100 VEC3 m_FixAxis; // 固定軸
101 public:
102 CCustomizerBase *Duplicate(){ return new CWindTracker(*this); }
103 char *Read(char *, CModelPlugin *);
104 void SetPostureCustomizer(CObject *);
105 };
106
107 /*
108 * 風車
109 */
110 class CWindmill: public CMoverBase{
111 private:
112 int m_Symmetric; // 対称カウント
113 float m_RotationSpeed; // 回転速度
114 float m_MaxRotation; // フレーム当たり回転量最大値
115 bool m_Directional; // 方向性
116 VEC3 m_RotationAxis; // 回転軸
117 public:
118 CCustomizerBase *Duplicate(){ return new CWindmill(*this); }
119 char *Read(char *, CModelPlugin *);
120 void SetPostureCustomizer(CObject *);
121 };
122
123 /*
124 * アナログ時計
125 */
126 class CAnalogClock: public CCustomizerBase{
127 private:
128 int m_HandType; // 針タイプ
129 public:
130 CCustomizerBase *Duplicate(){ return new CAnalogClock(*this); }
131 char *Read(char *);
132 int GetTypeFlagCustomizer(){ return CSTM_MODELMOVER; }
133 void SetPostureCustomizer(CObject *);
134 };
135
136 #endif

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