ランタイム
IActorModel.h
Go to the documentation of this file.
1 #pragma once
2 
5 
6 #include "Mix/Scene/IModel.h"
7 #include "Mix/Geometry/Sphere.h"
8 
9 namespace Mix{ namespace Scene{
10 
14  {
15  public:
19  {
24  R_INIT_LOCAL_MATRIX = 0x00000001,
25 
27  R_UPDATE_WORLD_MATRIX = 0x00000002,
28 
31  };
32 
36  {
37  C_SHARED_MATERIAL = 0x00000001,
38  C_SHARED_MOTION = 0x00000002,
40 
42  };
43 
47  {
50 
53 
56 
61  };
62 
65  struct CONFIG
66  {
69 
76 
82  };
83 
86  struct STATE
87  {
89 
91 
94  };
95 
96  protected:
98  virtual ~IActorModel( void ){}
99 
100  public:
103 
106  virtual const wchar_t* GetName( void ) const = 0;
107 
110  virtual const Mix::Scene::IActorModel::CONFIG& GetConfig( void ) const = 0;
113  virtual void SetConfig( const Mix::Scene::IActorModel::CONFIG& config ) = 0;
114 
119  virtual Boolean GetListener( Mix::Scene::IActorListener** ppListener ) = 0;
123  virtual void SetListener( Mix::Scene::IActorListener* pListener ) = 0;
124 
128  virtual void Reset( UInt32 flags = Mix::Scene::IActorModel::R_UPDATE_WORLD_MATRIX ) = 0;
129 
140  virtual void Update( void ) = 0;
153  virtual void Update( Float32 dt ) = 0;
154 
161  virtual void Refresh( void ) = 0;
162 
167  virtual void Refresh1( void ) = 0;
172  virtual void Refresh2( void ) = 0;
173 
178  virtual Boolean Clone( Mix::Scene::IActorModel** ppActorModel, UInt32 flags = Mix::Scene::IActorModel::C_ALL ) = 0;
179 
181 
184 
187  virtual const Mix::Matrix4x4& GetWorldMatrix( void ) const = 0;
195  virtual void SetWorldMatrix( const Mix::Matrix4x4& worldMat ) = 0;
196 
200  virtual const Mix::Quaternion& GetAngularVelocity( void ) const = 0;
204  virtual const Mix::Vector3& GetLinearVelocity( void ) const = 0;
205 
208  virtual const Mix::Scene::IActorModel::STATE& GetState( void ) const = 0;
209 
213  virtual const Mix::Geometry::Sphere& GetBounds( void ) const = 0;
214 
217  virtual Boolean IsVisible( void ) const = 0;
221  virtual Boolean IsVisible( UInt32 id ) const = 0;
225  virtual Boolean IsValid( void ) const = 0;
229  virtual Boolean IsValid( UInt32 id ) const = 0;
233  virtual Boolean IsIgnored( void ) const = 0;
234 
236 
239 
242  virtual UInt32 GetNodeCount( void ) const = 0;
247  virtual UInt32 GetNodeIndex( const wchar_t* pName ) const = 0;
253  virtual Boolean GetNodeByIndex( UInt32 index, Mix::Scene::IActorNode** ppNode ) = 0;
259  virtual Boolean GetNodeByName( const wchar_t* pName, Mix::Scene::IActorNode** ppNode ) = 0;
260 
262 
265 
269  virtual void GetMotionMixer( Mix::Scene::IMotionMixer** ppMotionMixer ) = 0;
270 
272 
275 
278  virtual Boolean ExistsKinematicCharacter( void ) const = 0;
283  virtual Boolean GetKinematicCharacter( Mix::Scene::IActorKinematicCharacter** ppKinematicCharacter ) = 0;
284 
287  virtual Boolean ExistsCollider( void ) const = 0;
292  virtual Boolean GetCollider( Mix::Scene::IActorCollider** ppCollider ) = 0;
293 
296  virtual UInt32 GetSensorCount( void ) const = 0;
302  virtual Boolean GetSensor( UInt32 index, Mix::Scene::IActorSensor** ppSensor ) = 0;
303 
307  virtual void GetDynamicsDirector( Mix::Scene::IActorDynamicsDirector** ppDynamicsDirector ) = 0;
308 
310 
313 
316  virtual Float32 Debug_GetDrawAxisScaling( void ) const = 0;
319  virtual void Debug_SetDrawAxisScaling( Float32 scaling ) = 0;
320 
323  virtual Float32 Debug_GetDrawJointFrameMinSize( void ) const = 0;
326  virtual void Debug_SetDrawJointFrameMinSize( Float32 minSize ) = 0;
327 
330  virtual Float32 Debug_GetDrawJointLimitScaling( void ) const = 0;
333  virtual void Debug_SetDrawJointLimitScaling( Float32 scaling ) = 0;
334 
336  };
337 
338 }}
3次元浮動小数点ベクトルクラス
Definition: Vector3.h:12
virtual void GetMotionMixer(Mix::Scene::IMotionMixer **ppMotionMixer)=0
モーションミキサーを取得します
virtual Boolean ExistsKinematicCharacter(void) const =0
キネマティックキャラクターが存在するかどうかを確認します
Float32 deltaTimer
スキップしたフレームのデルタタイムの合計
Definition: IActorModel.h:88
ワールド行列を更新します
Definition: IActorModel.h:27
アクターコライダーインターフェース
Definition: IActorCollider.h:13
モーションエントリーを複製する
Definition: IActorModel.h:39
virtual void Update(void)=0
更新をします
virtual Float32 Debug_GetDrawJointLimitScaling(void) const =0
デバッグ : ジョイントのリミットを描画する際のスケールを取得します
Float32 farMinDist
遠いと判断する最小距離
Definition: IActorModel.h:72
スフィアクラスインクルードファイル
UInt32 maxSkipFrames
スキップする最大フレーム数
Definition: IActorModel.h:81
virtual UInt32 GetNodeCount(void) const =0
ノードの数を取得します
設定構造体
Definition: IActorModel.h:65
virtual Boolean GetCollider(Mix::Scene::IActorCollider **ppCollider)=0
コライダーを取得します
アクターモデルインターフェース
Definition: IActorModel.h:13
virtual Boolean GetKinematicCharacter(Mix::Scene::IActorKinematicCharacter **ppKinematicCharacter)=0
キネマティックキャラクターを取得します
virtual Float32 Debug_GetDrawAxisScaling(void) const =0
デバッグ : 軸を描画する際のスケールを取得します
視界に入っていない場合( IsVisible() == False )は、CONFIG 構造体の skipFrames だけモーションのフレーム...
Definition: IActorModel.h:55
virtual void GetDynamicsDirector(Mix::Scene::IActorDynamicsDirector **ppDynamicsDirector)=0
ダイナミクスディレクターを取得します
ローカル行列を初期化します
Definition: IActorModel.h:24
virtual void Refresh1(void)=0
1 回目のリフレッシュをします
無効な状態( IsValid() == False )の場合はルートモーションのみにする
Definition: IActorModel.h:49
UInt32 curMaxSkipFrames
現在のスキップする最大フレーム数
Definition: IActorModel.h:93
virtual Boolean GetNodeByName(const wchar_t *pName, Mix::Scene::IActorNode **ppNode)=0
ノードを取得します
virtual Float32 Debug_GetDrawJointFrameMinSize(void) const =0
デバッグ : ジョイントのフレームを描画する際の最小サイズを取得します
クォータニオンクラス
Definition: Quaternion.h:10
全てのフラグ
Definition: IActorModel.h:58
遠いと判断 ( CONFIG 構造体の farMinDist 以上の距離に位置していること ) された場合は CONFIG 構造体の s...
Definition: IActorModel.h:52
virtual UInt32 GetSensorCount(void) const =0
センサーの数を取得します
全て
Definition: IActorModel.h:41
アクターノードインターフェース
Definition: IActorNode.h:12
球クラス
Definition: Sphere.h:12
virtual UInt32 GetNodeIndex(const wchar_t *pName) const =0
ノードのインデックスを取得します
全てリセットフラグ
Definition: IActorModel.h:30
4x4行列クラス
Definition: Matrix4x4.h:12
virtual const Mix::Quaternion & GetAngularVelocity(void) const =0
回転速度を取得します
unsigned int UInt32
符号無し32ビット整数
Definition: Common.h:68
BEHAVIOR_FLAGS
振る舞いフラグ列挙定数
Definition: IActorModel.h:46
virtual Boolean IsVisible(void) const =0
視界に入っているかどうかを確認します
virtual void Debug_SetDrawAxisScaling(Float32 scaling)=0
デバッグ : 軸を描画する際のスケールを設定します
virtual void SetWorldMatrix(const Mix::Matrix4x4 &worldMat)=0
ワールド行列を設定します
RESET_FLAGS
リセットフラグ列挙定数
Definition: IActorModel.h:18
Float32 farMaxDist
遠いと判断する最大距離
Definition: IActorModel.h:75
virtual ~IActorModel(void)
デストラクタ
Definition: IActorModel.h:98
Float32 farRatio
遠さ( 0.0f 〜 1.0f )
Definition: IActorModel.h:90
モデルインターフェース
Definition: IModel.h:12
CLONE_FLAGS
クローンフラグ列挙定数
Definition: IActorModel.h:35
virtual Boolean ExistsCollider(void) const =0
コライダーが存在するかどうかを確認します
virtual const Mix::Geometry::Sphere & GetBounds(void) const =0
境界を取得します
ミックス
Definition: AtomicValue.h:6
モーションを共有する
Definition: IActorModel.h:38
アクターセンサーインターフェース
Definition: IActorSensor.h:12
アクターダイナミクスディレクターインターフェース
Definition: IActorDynamicsDirector.h:12
virtual void Refresh2(void)=0
2 回目のリフレッシュをします
virtual Boolean IsIgnored(void) const =0
圏外かどうかを確認します
virtual const wchar_t * GetName(void) const =0
名前を取得します
モデルインターフェースインクルードファイル
マテリアルを共有する
Definition: IActorModel.h:37
アクターキネマティックキャラクター
Definition: IActorKinematicCharacter.h:12
virtual const Mix::Scene::IActorModel::STATE & GetState(void) const =0
ステートを取得します
virtual void Refresh(void)=0
リフレッシュをします
float Float32
32ビット浮動小数点
Definition: Common.h:83
virtual Boolean IsValid(void) const =0
有効になっているかどうかを確認します
UInt32 skipFrames
スキップしたフレーム数
Definition: IActorModel.h:92
virtual const Mix::Vector3 & GetLinearVelocity(void) const =0
移動速度を取得します
ステート構造体
Definition: IActorModel.h:86
virtual Boolean GetSensor(UInt32 index, Mix::Scene::IActorSensor **ppSensor)=0
センサーを取得します
virtual const Mix::Scene::IActorModel::CONFIG & GetConfig(void) const =0
設定を取得します
UInt32 behaviorFlags
BEHAVIOR_FLAGS 列挙定数の組み合わせ
Definition: IActorModel.h:68
virtual Boolean GetNodeByIndex(UInt32 index, Mix::Scene::IActorNode **ppNode)=0
ノードを取得します
virtual void Debug_SetDrawJointLimitScaling(Float32 scaling)=0
デバッグ : ジョイントのリミットを描画する際のスケールを設定します
virtual void Debug_SetDrawJointFrameMinSize(Float32 minSize)=0
デバッグ : ジョイントのフレームを描画する際の最小サイズを設定します
モーションミキサーインターフェース
Definition: IMotionMixer.h:12
BOOL Boolean
32ビットブーリアン
Definition: Common.h:102
virtual const Mix::Matrix4x4 & GetWorldMatrix(void) const =0
ワールド行列を取得します
virtual void SetConfig(const Mix::Scene::IActorModel::CONFIG &config)=0
設定をします
アクターリスナーインターフェース
Definition: IActorListener.h:12
virtual Boolean Clone(Mix::Scene::IActorModel **ppActorModel, UInt32 flags=Mix::Scene::IActorModel::C_ALL)=0
自身のクローンを作成します
virtual void SetListener(Mix::Scene::IActorListener *pListener)=0
リスナーを設定します
virtual Boolean GetListener(Mix::Scene::IActorListener **ppListener)=0
リスナーを取得します
virtual void Reset(UInt32 flags=Mix::Scene::IActorModel::R_UPDATE_WORLD_MATRIX)=0
リセットします