ランタイム
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:
20  {
21  public:
23  virtual ~TestCallback( void ) {}
24 
25  public:
31  virtual Boolean OnHit( Mix::Dynamics::IObject* pObject ) = 0;
32  };
33 
37  {
38  private:
39  Mix::Dynamics::IObject* m_pSelfObject;
40 
41  public:
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  {
74 
81 
87 
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,
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,
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 }}
3次元浮動小数点ベクトルクラス
Definition: Vector3.h:12
ジョイントインターフェースインクルードファイル
virtual UInt32 GetTotalJointCount(void) const =0
ジョイントの数を取得します
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
スウィープでテストします
Int32 polygonIndex
ヒットしたポリゴンインデックス
Definition: IWorld.h:86
virtual UInt32 Activate(void)=0
活動状態にします
virtual ~IWorld(void)
デストラクタ
Definition: IWorld.h:94
#define MIX_RELEASE(x)
Mix::Release インターフェースを継承したクラスの参照カウンタをデクリメントします
Definition: Common.h:464
テスト結果構造体
Definition: IWorld.h:71
ジョイントインターフェース
Definition: IJoint.h:12
virtual Boolean AddJoint(Mix::Dynamics::IJoint *pJoint, Boolean bCollisionDisabled=False)=0
ジョイントを追加します
オブジェクトインターフェースインクルードファイル
virtual const Mix::Dynamics::DEBUG_WORLD_PROFILE & Debug_GetProfile(void) const =0
デバッグ : プロファイルを取得します
virtual void SetGravity(const Mix::Vector3 &gravity)=0
重力を設定します
int Int32
符号有り32ビット整数
Definition: Common.h:65
TestWithoutSelfCallback(Mix::Dynamics::IObject *pSelfObject)
コンストラクタ
Definition: IWorld.h:45
virtual UInt32 GetJointCount(Mix::Dynamics::IJoint::TYPE type) const =0
指定したジョイントの数を取得します
unsigned int UInt32
符号無し32ビット整数
Definition: Common.h:68
パースペクティブレンダラーインターフェース
Definition: IPerspectiveRenderer.h:16
virtual Boolean RemoveObject(Mix::Dynamics::IObject *pObject)=0
オブジェクトを取り除きます
virtual Boolean ContainsJoint(Mix::Dynamics::IJoint *pJoint) const =0
ジョイントが存在しているかどうかを取得します
virtual Boolean ContainsObject(Mix::Dynamics::IObject *pObject) const =0
オブジェクトが存在しているかどうかを取得します
virtual Boolean OnHit(Mix::Dynamics::IObject *pObject)
オブジェクトがヒットした際に呼び出されます
Definition: IWorld.h:63
Mix::Dynamics::IObject * pObject
ヒットしたオブジェクトを表す Mix::Dynamics::IObject インターフェースのポインタ
Definition: IWorld.h:73
Int32 partIndex
ヒットしたパートインデックス
Definition: IWorld.h:80
ミックス
Definition: AtomicValue.h:6
#define False
Boolean型の偽値
Definition: Common.h:108
virtual UInt32 GetTotalObjectCount(void) const =0
全てのオブジェクトの数を取得します
TYPE
タイプ列挙定数
Definition: IJoint.h:17
virtual Boolean RemoveJoint(Mix::Dynamics::IJoint *pJoint)=0
ジョイントを取り除きます
virtual void Update(Float32 dt, Float32 baseDt=1.0f/60.0f)=0
更新します
テストコールバッククラス(自身を除外)
Definition: IWorld.h:36
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
光線でテストします
TYPE
タイプ列挙定数
Definition: IObject.h:18
virtual void Debug_Draw(Mix::Graphics::Utility::IPerspectiveRenderer *pPerspectiveRenderer)=0
デバッグ : 描画を行います
オブジェクトインターフェース
Definition: IObject.h:13
float Float32
32ビット浮動小数点
Definition: Common.h:83
リファレンスクラス
Definition: Reference.h:12
virtual Boolean AddObject(Mix::Dynamics::IObject *pObject)=0
オブジェクトを追加します
virtual const Mix::Vector3 & GetGravity(void) const =0
重力を取得します
virtual Boolean OnHit(Mix::Dynamics::IObject *pObject)=0
オブジェクトがヒットした際に呼び出されます
リファレンスクラスインクルードファイル
unsigned short UInt16
符号無し16ビット整数
Definition: Common.h:62
virtual ~TestWithoutSelfCallback(void)
デストラクタ
Definition: IWorld.h:55
virtual UInt32 GetObjectCount(Mix::Dynamics::IObject::TYPE type) const =0
指定したオブジェクトの数を取得します
デバッグ : ワールドプロファイル
Definition: Common.h:2013
テストコールバッククラス
Definition: IWorld.h:19
#define MIX_ADD_REF(x)
Mix::Release インターフェースを継承したクラスの参照カウンタをインクリメントします ...
Definition: Common.h:456
virtual ~TestCallback(void)
デストラクタ
Definition: IWorld.h:23
Mix::Vector3 worldPos
ヒットした位置のワールド座標
Definition: IWorld.h:88
BOOL Boolean
32ビットブーリアン
Definition: Common.h:102
シェイプインターフェース
Definition: IShape.h:16
virtual UInt32 Deactivate(Boolean bForce=False)=0
非活動状態にします
ワールドインターフェース
Definition: IWorld.h:14
#define MIX_ASSERT(cnd)
標準のアサート
Definition: Common.h:120
Mix::Vector3 worldNormal
ヒットした位置のワールド法線
Definition: IWorld.h:89