ランタイム: Mix/Dynamics/IWorld.h Source File

ランタイム

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

- File List
- File Members

IWorld.h
Go to the documentation of this file.
1 #pragma once
2
5
6 #include "Mix/Reference.h"
7 #include "Mix/Dynamics/IObject.h"
8 #include "Mix/Dynamics/IJoint.h"
9
10 namespace Mix{ namespace Dynamics{
11
14 class IWorld : public Mix::Reference
15 {
16 public:
19 class TestCallback
20 {
21 public:
23 virtual ~TestCallback( void ) {}
24
25 public:
31 virtual Boolean OnHit( Mix::Dynamics::IObject* pObject ) = 0;
32 };
33
36 class TestWithoutSelfCallback : public Mix::Dynamics::IWorld::TestCallback
37 {
38 private:
39 Mix::Dynamics::IObject* m_pSelfObject;
40
41 public:
45 TestWithoutSelfCallback( Mix::Dynamics::IObject* pSelfObject ) :
46 m_pSelfObject( NULL )
47 {
48 MIX_ASSERT( pSelfObject != NULL );
49
50 MIX_ADD_REF( pSelfObject );
51 m_pSelfObject = pSelfObject;
52 }
53
55 virtual ~TestWithoutSelfCallback( void )
56 {
57 MIX_RELEASE( m_pSelfObject );
58 }
59
63 virtual Boolean OnHit( Mix::Dynamics::IObject* pObject )
64 {
65 return ( m_pSelfObject != pObject );
66 }
67 };
68
71 struct TEST_RESULT
72 {
73 Mix::Dynamics::IObject* pObject;
74
80 Int32 partIndex;
81
86 Int32 polygonIndex;
87
88 Mix::Vector3 worldPos;
89 Mix::Vector3 worldNormal;
90 };
91
92 protected:
94 virtual ~IWorld( void ){}
95
96 public:
100 virtual Boolean ContainsJoint( Mix::Dynamics::IJoint* pJoint ) const = 0;
109 virtual Boolean AddJoint( Mix::Dynamics::IJoint* pJoint, Boolean bCollisionDisabled = False ) = 0;
114 virtual Boolean RemoveJoint( Mix::Dynamics::IJoint* pJoint ) = 0;
118 virtual UInt32 GetJointCount( Mix::Dynamics::IJoint::TYPE type ) const = 0;
121 virtual UInt32 GetTotalJointCount( void ) const = 0;
122
126 virtual Boolean ContainsObject( Mix::Dynamics::IObject* pObject ) const = 0;
131 virtual Boolean AddObject( Mix::Dynamics::IObject* pObject ) = 0;
136 virtual Boolean RemoveObject( Mix::Dynamics::IObject* pObject ) = 0;
140 virtual UInt32 GetObjectCount( Mix::Dynamics::IObject::TYPE type ) const = 0;
143 virtual UInt32 GetTotalObjectCount( void ) const = 0;
144
147 virtual const Mix::Vector3& GetGravity( void ) const = 0;
150 virtual void SetGravity( const Mix::Vector3& gravity ) = 0;
151
154 virtual UInt32 Activate( void ) = 0;
157 virtual UInt32 Deactivate( Boolean bForce = False ) = 0;
158
163 virtual void Update( Float32 dt, Float32 baseDt = 1.0f / 60.0f ) = 0;
164
173 virtual Boolean TestRay( const Mix::Vector3& fromWorldPos,
174 const Mix::Vector3& toWorldPos,
175 UInt16 filterGroup,
176 UInt16 filterMask,
177 Mix::Dynamics::IWorld::TestCallback* pCallback,
178 Mix::Dynamics::IWorld::TEST_RESULT& result ) = 0;
179
189 virtual Boolean TestSweep( Mix::Dynamics::IShape* pShape,
190 const Mix::Vector3& fromWorldPos,
191 const Mix::Vector3& toWorldPos,
192 UInt16 filterGroup,
193 UInt16 filterMask,
194 Mix::Dynamics::IWorld::TestCallback* pCallback,
195 Mix::Dynamics::IWorld::TEST_RESULT& result ) = 0;
196
197 public:
200 virtual const Mix::Dynamics::DEBUG_WORLD_PROFILE& Debug_GetProfile( void ) const = 0;
203 virtual void Debug_Draw( Mix::Graphics::Utility::IPerspectiveRenderer* pPerspectiveRenderer ) = 0;
204 };
205
206 }}
Mix::Vector3
3次元浮動小数点ベクトルクラス
Definition: Vector3.h:12
IJoint.h
ジョイントインターフェースインクルードファイル
Mix::Dynamics::IWorld::GetTotalJointCount
virtual UInt32 GetTotalJointCount(void) const =0
ジョイントの数を取得します
Mix::Dynamics::IWorld::TestSweep
virtual Boolean TestSweep(Mix::Dynamics::IShape *pShape, const Mix::Vector3 &fromWorldPos, const Mix::Vector3 &toWorldPos, UInt16 filterGroup, UInt16 filterMask, Mix::Dynamics::IWorld::TestCallback *pCallback, Mix::Dynamics::IWorld::TEST_RESULT &result)=0
スウィープでテストします
Mix::Dynamics::IWorld::TEST_RESULT::polygonIndex
Int32 polygonIndex
ヒットしたポリゴンインデックス
Definition: IWorld.h:86
Mix::Dynamics::IWorld::Activate
virtual UInt32 Activate(void)=0
活動状態にします
Mix::Dynamics::IWorld::~IWorld
virtual ~IWorld(void)
デストラクタ
Definition: IWorld.h:94
MIX_RELEASE
#define MIX_RELEASE(x)
Mix::Release インターフェースを継承したクラスの参照カウンタをデクリメントします
Definition: Common.h:464
Mix::Dynamics::IWorld::TEST_RESULT
テスト結果構造体
Definition: IWorld.h:71
Mix::Dynamics::IJoint
ジョイントインターフェース
Definition: IJoint.h:12
Mix::Dynamics::IWorld::AddJoint
virtual Boolean AddJoint(Mix::Dynamics::IJoint *pJoint, Boolean bCollisionDisabled=False)=0
ジョイントを追加します
IObject.h
オブジェクトインターフェースインクルードファイル
Mix::Dynamics::IWorld::Debug_GetProfile
virtual const Mix::Dynamics::DEBUG_WORLD_PROFILE & Debug_GetProfile(void) const =0
デバッグ : プロファイルを取得します
Mix::Dynamics::IWorld::SetGravity
virtual void SetGravity(const Mix::Vector3 &gravity)=0
重力を設定します
Int32
int Int32
符号有り32ビット整数
Definition: Common.h:65
Mix::Dynamics::IWorld::TestWithoutSelfCallback::TestWithoutSelfCallback
TestWithoutSelfCallback(Mix::Dynamics::IObject *pSelfObject)
コンストラクタ
Definition: IWorld.h:45
Mix::Dynamics::IWorld::GetJointCount
virtual UInt32 GetJointCount(Mix::Dynamics::IJoint::TYPE type) const =0
指定したジョイントの数を取得します
UInt32
unsigned int UInt32
符号無し32ビット整数
Definition: Common.h:68
Mix::Graphics::Utility::IPerspectiveRenderer
パースペクティブレンダラーインターフェース
Definition: IPerspectiveRenderer.h:16
Mix::Dynamics::IWorld::RemoveObject
virtual Boolean RemoveObject(Mix::Dynamics::IObject *pObject)=0
オブジェクトを取り除きます
Mix::Dynamics::IWorld::ContainsJoint
virtual Boolean ContainsJoint(Mix::Dynamics::IJoint *pJoint) const =0
ジョイントが存在しているかどうかを取得します
Mix::Dynamics::IWorld::ContainsObject
virtual Boolean ContainsObject(Mix::Dynamics::IObject *pObject) const =0
オブジェクトが存在しているかどうかを取得します
Mix::Dynamics::IWorld::TestWithoutSelfCallback::OnHit
virtual Boolean OnHit(Mix::Dynamics::IObject *pObject)
オブジェクトがヒットした際に呼び出されます
Definition: IWorld.h:63
Mix::Dynamics::IWorld::TEST_RESULT::pObject
Mix::Dynamics::IObject * pObject
ヒットしたオブジェクトを表す Mix::Dynamics::IObject インターフェースのポインタ
Definition: IWorld.h:73
Mix::Dynamics::IWorld::TEST_RESULT::partIndex
Int32 partIndex
ヒットしたパートインデックス
Definition: IWorld.h:80
Mix
ミックス
Definition: AtomicValue.h:6
False
#define False
Boolean型の偽値
Definition: Common.h:108
Mix::Dynamics::IWorld::GetTotalObjectCount
virtual UInt32 GetTotalObjectCount(void) const =0
全てのオブジェクトの数を取得します
Mix::Dynamics::IJoint::TYPE
TYPE
タイプ列挙定数
Definition: IJoint.h:17
Mix::Dynamics::IWorld::RemoveJoint
virtual Boolean RemoveJoint(Mix::Dynamics::IJoint *pJoint)=0
ジョイントを取り除きます
Mix::Dynamics::IWorld::Update
virtual void Update(Float32 dt, Float32 baseDt=1.0f/60.0f)=0
更新します
Mix::Dynamics::IWorld::TestWithoutSelfCallback
テストコールバッククラス(自身を除外)
Definition: IWorld.h:36
Mix::Dynamics::IWorld::TestRay
virtual Boolean TestRay(const Mix::Vector3 &fromWorldPos, const Mix::Vector3 &toWorldPos, UInt16 filterGroup, UInt16 filterMask, Mix::Dynamics::IWorld::TestCallback *pCallback, Mix::Dynamics::IWorld::TEST_RESULT &result)=0
光線でテストします
Mix::Dynamics::IObject::TYPE
TYPE
タイプ列挙定数
Definition: IObject.h:18
Mix::Dynamics::IWorld::Debug_Draw
virtual void Debug_Draw(Mix::Graphics::Utility::IPerspectiveRenderer *pPerspectiveRenderer)=0
デバッグ : 描画を行います
Mix::Dynamics::IObject
オブジェクトインターフェース
Definition: IObject.h:13
Float32
float Float32
32ビット浮動小数点
Definition: Common.h:83
Mix::Reference
リファレンスクラス
Definition: Reference.h:12
Mix::Dynamics::IWorld::AddObject
virtual Boolean AddObject(Mix::Dynamics::IObject *pObject)=0
オブジェクトを追加します
Mix::Dynamics::IWorld::GetGravity
virtual const Mix::Vector3 & GetGravity(void) const =0
重力を取得します
Mix::Dynamics::IWorld::TestCallback::OnHit
virtual Boolean OnHit(Mix::Dynamics::IObject *pObject)=0
オブジェクトがヒットした際に呼び出されます
Reference.h
リファレンスクラスインクルードファイル
UInt16
unsigned short UInt16
符号無し16ビット整数
Definition: Common.h:62
Mix::Dynamics::IWorld::TestWithoutSelfCallback::~TestWithoutSelfCallback
virtual ~TestWithoutSelfCallback(void)
デストラクタ
Definition: IWorld.h:55
Mix::Dynamics::IWorld::GetObjectCount
virtual UInt32 GetObjectCount(Mix::Dynamics::IObject::TYPE type) const =0
指定したオブジェクトの数を取得します
Mix::Dynamics::DEBUG_WORLD_PROFILE
デバッグ : ワールドプロファイル
Definition: Common.h:2013
Mix::Dynamics::IWorld::TestCallback
テストコールバッククラス
Definition: IWorld.h:19
MIX_ADD_REF
#define MIX_ADD_REF(x)
Mix::Release インターフェースを継承したクラスの参照カウンタをインクリメントします ...
Definition: Common.h:456
Mix::Dynamics::IWorld::TestCallback::~TestCallback
virtual ~TestCallback(void)
デストラクタ
Definition: IWorld.h:23
Mix::Dynamics::IWorld::TEST_RESULT::worldPos
Mix::Vector3 worldPos
ヒットした位置のワールド座標
Definition: IWorld.h:88
Boolean
BOOL Boolean
32ビットブーリアン
Definition: Common.h:102
Mix::Dynamics::IShape
シェイプインターフェース
Definition: IShape.h:16
Mix::Dynamics::IWorld::Deactivate
virtual UInt32 Deactivate(Boolean bForce=False)=0
非活動状態にします
Mix::Dynamics::IWorld
ワールドインターフェース
Definition: IWorld.h:14
MIX_ASSERT
#define MIX_ASSERT(cnd)
標準のアサート
Definition: Common.h:120
Mix::Dynamics::IWorld::TEST_RESULT::worldNormal
Mix::Vector3 worldNormal
ヒットした位置のワールド法線
Definition: IWorld.h:89