ランタイム: Mix/Scene/IActorModel.h Source File

ランタイム

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List
- File Members

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
13 class IActorModel : public Mix::Scene::IModel
14 {
15 public:
18 enum RESET_FLAGS
19 {
24 R_INIT_LOCAL_MATRIX = 0x00000001,
25
27 R_UPDATE_WORLD_MATRIX = 0x00000002,
28
30 R_ALL = ( R_INIT_LOCAL_MATRIX | R_UPDATE_WORLD_MATRIX ),
31 };
32
35 enum CLONE_FLAGS
36 {
37 C_SHARED_MATERIAL = 0x00000001,
38 C_SHARED_MOTION = 0x00000002,
39 C_DUPLICATE_MOTION_ENTRIES = 0x00000004,
40
41 C_ALL = ( C_SHARED_MATERIAL | C_SHARED_MOTION | C_DUPLICATE_MOTION_ENTRIES ),
42 };
43
46 enum BEHAVIOR_FLAGS
47 {
49 B_INVALID_ONLY_ROOT_MOTION = 0x00000001,
50
52 B_FAR_SKIP_MOTION_FRAME = 0x00000002,
53
55 B_INVISIBLE_SKIP_MOTION_FRAME = 0x00000004,
56
58 B_ALL_FLAGS = B_INVALID_ONLY_ROOT_MOTION |
59 B_FAR_SKIP_MOTION_FRAME |
60 B_INVISIBLE_SKIP_MOTION_FRAME,
61 };
62
65 struct CONFIG
66 {
68 UInt32 behaviorFlags;
69
72 Float32 farMinDist;
75 Float32 farMaxDist;
76
81 UInt32 maxSkipFrames;
82 };
83
86 struct STATE
87 {
88 Float32 deltaTimer;
89
90 Float32 farRatio;
91
92 UInt32 skipFrames;
93 UInt32 curMaxSkipFrames;
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 }}
Mix::Vector3
3次元浮動小数点ベクトルクラス
Definition: Vector3.h:12
Mix::Scene::IActorModel::GetMotionMixer
virtual void GetMotionMixer(Mix::Scene::IMotionMixer **ppMotionMixer)=0
モーションミキサーを取得します
Mix::Scene::IActorModel::ExistsKinematicCharacter
virtual Boolean ExistsKinematicCharacter(void) const =0
キネマティックキャラクターが存在するかどうかを確認します
Mix::Scene::IActorModel::STATE::deltaTimer
Float32 deltaTimer
スキップしたフレームのデルタタイムの合計
Definition: IActorModel.h:88
Mix::Scene::IActorModel::R_UPDATE_WORLD_MATRIX
ワールド行列を更新します
Definition: IActorModel.h:27
Mix::Scene::IActorCollider
アクターコライダーインターフェース
Definition: IActorCollider.h:13
Mix::Scene::IActorModel::C_DUPLICATE_MOTION_ENTRIES
モーションエントリーを複製する
Definition: IActorModel.h:39
Mix::Scene::IActorModel::Update
virtual void Update(void)=0
更新をします
Mix::Scene::IActorModel::Debug_GetDrawJointLimitScaling
virtual Float32 Debug_GetDrawJointLimitScaling(void) const =0
デバッグ : ジョイントのリミットを描画する際のスケールを取得します
Mix::Scene::IActorModel::CONFIG::farMinDist
Float32 farMinDist
遠いと判断する最小距離
Definition: IActorModel.h:72
Sphere.h
スフィアクラスインクルードファイル
Mix::Scene::IActorModel::CONFIG::maxSkipFrames
UInt32 maxSkipFrames
スキップする最大フレーム数
Definition: IActorModel.h:81
Mix::Scene::IActorModel::GetNodeCount
virtual UInt32 GetNodeCount(void) const =0
ノードの数を取得します
Mix::Scene::IActorModel::CONFIG
設定構造体
Definition: IActorModel.h:65
Mix::Scene::IActorModel::GetCollider
virtual Boolean GetCollider(Mix::Scene::IActorCollider **ppCollider)=0
コライダーを取得します
Mix::Scene::IActorModel
アクターモデルインターフェース
Definition: IActorModel.h:13
Mix::Scene::IActorModel::GetKinematicCharacter
virtual Boolean GetKinematicCharacter(Mix::Scene::IActorKinematicCharacter **ppKinematicCharacter)=0
キネマティックキャラクターを取得します
Mix::Scene::IActorModel::Debug_GetDrawAxisScaling
virtual Float32 Debug_GetDrawAxisScaling(void) const =0
デバッグ : 軸を描画する際のスケールを取得します
Mix::Scene::IActorModel::B_INVISIBLE_SKIP_MOTION_FRAME
視界に入っていない場合( IsVisible() == False )は、CONFIG 構造体の skipFrames だけモーションのフレーム...
Definition: IActorModel.h:55
Mix::Scene::IActorModel::GetDynamicsDirector
virtual void GetDynamicsDirector(Mix::Scene::IActorDynamicsDirector **ppDynamicsDirector)=0
ダイナミクスディレクターを取得します
Mix::Scene::IActorModel::R_INIT_LOCAL_MATRIX
ローカル行列を初期化します
Definition: IActorModel.h:24
Mix::Scene::IActorModel::Refresh1
virtual void Refresh1(void)=0
1 回目のリフレッシュをします
Mix::Scene::IActorModel::B_INVALID_ONLY_ROOT_MOTION
無効な状態( IsValid() == False )の場合はルートモーションのみにする
Definition: IActorModel.h:49
Mix::Scene::IActorModel::STATE::curMaxSkipFrames
UInt32 curMaxSkipFrames
現在のスキップする最大フレーム数
Definition: IActorModel.h:93
Mix::Scene::IActorModel::GetNodeByName
virtual Boolean GetNodeByName(const wchar_t *pName, Mix::Scene::IActorNode **ppNode)=0
ノードを取得します
Mix::Scene::IActorModel::Debug_GetDrawJointFrameMinSize
virtual Float32 Debug_GetDrawJointFrameMinSize(void) const =0
デバッグ : ジョイントのフレームを描画する際の最小サイズを取得します
Mix::Quaternion
クォータニオンクラス
Definition: Quaternion.h:10
Mix::Scene::IActorModel::B_ALL_FLAGS
全てのフラグ
Definition: IActorModel.h:58
Mix::Scene::IActorModel::B_FAR_SKIP_MOTION_FRAME
遠いと判断 ( CONFIG 構造体の farMinDist 以上の距離に位置していること ) された場合は CONFIG 構造体の s...
Definition: IActorModel.h:52
Mix::Scene::IActorModel::GetSensorCount
virtual UInt32 GetSensorCount(void) const =0
センサーの数を取得します
Mix::Scene::IActorModel::C_ALL
全て
Definition: IActorModel.h:41
Mix::Scene::IActorNode
アクターノードインターフェース
Definition: IActorNode.h:12
Mix::Geometry::Sphere
球クラス
Definition: Sphere.h:12
Mix::Scene::IActorModel::GetNodeIndex
virtual UInt32 GetNodeIndex(const wchar_t *pName) const =0
ノードのインデックスを取得します
Mix::Scene::IActorModel::R_ALL
全てリセットフラグ
Definition: IActorModel.h:30
Mix::Matrix4x4
4x4行列クラス
Definition: Matrix4x4.h:12
Mix::Scene::IActorModel::GetAngularVelocity
virtual const Mix::Quaternion & GetAngularVelocity(void) const =0
回転速度を取得します
UInt32
unsigned int UInt32
符号無し32ビット整数
Definition: Common.h:68
Mix::Scene::IActorModel::BEHAVIOR_FLAGS
BEHAVIOR_FLAGS
振る舞いフラグ列挙定数
Definition: IActorModel.h:46
Mix::Scene::IActorModel::IsVisible
virtual Boolean IsVisible(void) const =0
視界に入っているかどうかを確認します
Mix::Scene::IActorModel::Debug_SetDrawAxisScaling
virtual void Debug_SetDrawAxisScaling(Float32 scaling)=0
デバッグ : 軸を描画する際のスケールを設定します
Mix::Scene::IActorModel::SetWorldMatrix
virtual void SetWorldMatrix(const Mix::Matrix4x4 &worldMat)=0
ワールド行列を設定します
Mix::Scene::IActorModel::RESET_FLAGS
RESET_FLAGS
リセットフラグ列挙定数
Definition: IActorModel.h:18
Mix::Scene::IActorModel::CONFIG::farMaxDist
Float32 farMaxDist
遠いと判断する最大距離
Definition: IActorModel.h:75
Mix::Scene::IActorModel::~IActorModel
virtual ~IActorModel(void)
デストラクタ
Definition: IActorModel.h:98
Mix::Scene::IActorModel::STATE::farRatio
Float32 farRatio
遠さ( 0.0f 〜 1.0f )
Definition: IActorModel.h:90
Mix::Scene::IModel
モデルインターフェース
Definition: IModel.h:12
Mix::Scene::IActorModel::CLONE_FLAGS
CLONE_FLAGS
クローンフラグ列挙定数
Definition: IActorModel.h:35
Mix::Scene::IActorModel::ExistsCollider
virtual Boolean ExistsCollider(void) const =0
コライダーが存在するかどうかを確認します
Mix::Scene::IActorModel::GetBounds
virtual const Mix::Geometry::Sphere & GetBounds(void) const =0
境界を取得します
Mix
ミックス
Definition: AtomicValue.h:6
Mix::Scene::IActorModel::C_SHARED_MOTION
モーションを共有する
Definition: IActorModel.h:38
Mix::Scene::IActorSensor
アクターセンサーインターフェース
Definition: IActorSensor.h:12
Mix::Scene::IActorDynamicsDirector
アクターダイナミクスディレクターインターフェース
Definition: IActorDynamicsDirector.h:12
Mix::Scene::IActorModel::Refresh2
virtual void Refresh2(void)=0
2 回目のリフレッシュをします
Mix::Scene::IActorModel::IsIgnored
virtual Boolean IsIgnored(void) const =0
圏外かどうかを確認します
Mix::Scene::IActorModel::GetName
virtual const wchar_t * GetName(void) const =0
名前を取得します
IModel.h
モデルインターフェースインクルードファイル
Mix::Scene::IActorModel::C_SHARED_MATERIAL
マテリアルを共有する
Definition: IActorModel.h:37
Mix::Scene::IActorKinematicCharacter
アクターキネマティックキャラクター
Definition: IActorKinematicCharacter.h:12
Mix::Scene::IActorModel::GetState
virtual const Mix::Scene::IActorModel::STATE & GetState(void) const =0
ステートを取得します
Mix::Scene::IActorModel::Refresh
virtual void Refresh(void)=0
リフレッシュをします
Float32
float Float32
32ビット浮動小数点
Definition: Common.h:83
Mix::Scene::IActorModel::IsValid
virtual Boolean IsValid(void) const =0
有効になっているかどうかを確認します
Mix::Scene::IActorModel::STATE::skipFrames
UInt32 skipFrames
スキップしたフレーム数
Definition: IActorModel.h:92
Mix::Scene::IActorModel::GetLinearVelocity
virtual const Mix::Vector3 & GetLinearVelocity(void) const =0
移動速度を取得します
Mix::Scene::IActorModel::STATE
ステート構造体
Definition: IActorModel.h:86
Mix::Scene::IActorModel::GetSensor
virtual Boolean GetSensor(UInt32 index, Mix::Scene::IActorSensor **ppSensor)=0
センサーを取得します
Mix::Scene::IActorModel::GetConfig
virtual const Mix::Scene::IActorModel::CONFIG & GetConfig(void) const =0
設定を取得します
Mix::Scene::IActorModel::CONFIG::behaviorFlags
UInt32 behaviorFlags
BEHAVIOR_FLAGS 列挙定数の組み合わせ
Definition: IActorModel.h:68
Mix::Scene::IActorModel::GetNodeByIndex
virtual Boolean GetNodeByIndex(UInt32 index, Mix::Scene::IActorNode **ppNode)=0
ノードを取得します
Mix::Scene::IActorModel::Debug_SetDrawJointLimitScaling
virtual void Debug_SetDrawJointLimitScaling(Float32 scaling)=0
デバッグ : ジョイントのリミットを描画する際のスケールを設定します
Mix::Scene::IActorModel::Debug_SetDrawJointFrameMinSize
virtual void Debug_SetDrawJointFrameMinSize(Float32 minSize)=0
デバッグ : ジョイントのフレームを描画する際の最小サイズを設定します
Mix::Scene::IMotionMixer
モーションミキサーインターフェース
Definition: IMotionMixer.h:12
Boolean
BOOL Boolean
32ビットブーリアン
Definition: Common.h:102
Mix::Scene::IActorModel::GetWorldMatrix
virtual const Mix::Matrix4x4 & GetWorldMatrix(void) const =0
ワールド行列を取得します
Mix::Scene::IActorModel::SetConfig
virtual void SetConfig(const Mix::Scene::IActorModel::CONFIG &config)=0
設定をします
Mix::Scene::IActorListener
アクターリスナーインターフェース
Definition: IActorListener.h:12
Mix::Scene::IActorModel::Clone
virtual Boolean Clone(Mix::Scene::IActorModel **ppActorModel, UInt32 flags=Mix::Scene::IActorModel::C_ALL)=0
自身のクローンを作成します
Mix::Scene::IActorModel::SetListener
virtual void SetListener(Mix::Scene::IActorListener *pListener)=0
リスナーを設定します
Mix::Scene::IActorModel::GetListener
virtual Boolean GetListener(Mix::Scene::IActorListener **ppListener)=0
リスナーを取得します
Mix::Scene::IActorModel::Reset
virtual void Reset(UInt32 flags=Mix::Scene::IActorModel::R_UPDATE_WORLD_MATRIX)=0
リセットします