ランタイム
IObject.h
Go to the documentation of this file.
1 #pragma once
2 
5 
6 #include "Mix/Reference.h"
7 #include "Mix/Geometry/AABB.h"
8 
9 namespace Mix{ namespace Dynamics{
10 
13  class IObject : public Mix::Reference
14  {
15  public:
18  enum TYPE
19  {
22  RIGIDBODY = 2,
23  SENSOR = 3,
25  VEHICLE = 5,
26  };
27 
28  protected:
30  virtual ~IObject( void ) {}
31 
32  public:
35  virtual Mix::Dynamics::IObject::TYPE GetType( void ) const = 0;
36 
46  virtual Boolean GetShape( Mix::Dynamics::IShape** ppShape ) = 0;
47 
51  virtual Float32 GetShapeMargin( void ) const = 0;
55  virtual void SetShapeMargin( Float32 margin ) = 0;
56 
59  virtual UInt16 GetFilterGroup( void ) const = 0;
62  virtual void SetFilterGroup( UInt16 filterGroup ) = 0;
63 
66  virtual UInt16 GetFilterMask( void ) const = 0;
69  virtual void SetFilterMask( UInt16 filterMask ) = 0;
70 
73  virtual const Mix::Dynamics::MATERIAL& GetMaterial( void ) const = 0;
76  virtual void SetMaterial( const Mix::Dynamics::MATERIAL& material ) = 0;
77 
80  virtual Mix::Quaternion GetWorldRotation( void ) const = 0;
83  virtual Mix::Vector3 GetWorldPosition( void ) const = 0;
86  virtual Mix::Matrix4x4 GetWorldMatrix( void ) const = 0;
87 
90  virtual void SetWorldRotation( const Mix::Quaternion& rot ) = 0;
93  virtual void SetWorldPosition( const Mix::Vector3& pos ) = 0;
97  virtual void SetWorldTransform( const Mix::Quaternion& rot, const Mix::Vector3& pos ) = 0;
98 
101  virtual Boolean IsInWorld( void ) const = 0;
102 
105  virtual Mix::Geometry::AABB GetBounds( void ) const = 0;
106 
110  virtual Boolean AddListener( Mix::Dynamics::IObjectListener* pListener ) = 0;
113  virtual void RemoveListener( Mix::Dynamics::IObjectListener* pListener ) = 0;
114 
117  virtual Int32 GetUserIndex( void ) const = 0;
121  virtual void SetUserIndex( Int32 index ) = 0;
122 
125  virtual void* GetUserPtr( void ) const = 0;
129  virtual void SetUserPtr( void* pData ) = 0;
130 
133  virtual UInt32 Debug_GetDrawFlags( void ) const = 0;
136  virtual void Debug_SetDrawFlags( UInt32 flags ) = 0;
137 
140  virtual Float32 Debug_GetDrawAxisScaling( void ) const = 0;
143  virtual void Debug_SetDrawAxisScaling( Float32 scaling ) = 0;
144 
148  virtual void Debug_Draw( Mix::Graphics::Utility::IPerspectiveRenderer* pPerspectiveRenderer, Float32 opacity = 1.0f ) = 0;
149  };
150 
151 }}
3次元浮動小数点ベクトルクラス
Definition: Vector3.h:12
virtual void RemoveListener(Mix::Dynamics::IObjectListener *pListener)=0
リスナーを削除します
virtual ~IObject(void)
デストラクタ
Definition: IObject.h:30
virtual void SetFilterGroup(UInt16 filterGroup)=0
フィルターグループを設定します
virtual const Mix::Dynamics::MATERIAL & GetMaterial(void) const =0
マテリアルを取得します
スタティックメッシュ
Definition: IObject.h:21
virtual void SetFilterMask(UInt16 filterMask)=0
フィルターマスクを設定します
virtual Mix::Matrix4x4 GetWorldMatrix(void) const =0
ワールド行列を取得します
virtual void SetShapeMargin(Float32 margin)=0
シェイプの衝突マージンを設定します
クォータニオンクラス
Definition: Quaternion.h:10
virtual UInt16 GetFilterMask(void) const =0
フィルターマスクを取得します
AABBクラスインクルードファイル
virtual void * GetUserPtr(void) const =0
ユーザーポインタを取得します
int Int32
符号有り32ビット整数
Definition: Common.h:65
virtual Mix::Geometry::AABB GetBounds(void) const =0
境界を取得します
AABBクラス
Definition: AABB.h:12
virtual void SetWorldRotation(const Mix::Quaternion &rot)=0
ワールドの回転を設定します
virtual void SetUserPtr(void *pData)=0
ユーザーポインタを設定します
virtual void Debug_Draw(Mix::Graphics::Utility::IPerspectiveRenderer *pPerspectiveRenderer, Float32 opacity=1.0f)=0
デバッグ描画をします
4x4行列クラス
Definition: Matrix4x4.h:12
unsigned int UInt32
符号無し32ビット整数
Definition: Common.h:68
ビハイクル
Definition: IObject.h:25
パースペクティブレンダラーインターフェース
Definition: IPerspectiveRenderer.h:16
オブジェクトリスナーインターフェース
Definition: IObjectListener.h:12
virtual Mix::Dynamics::IObject::TYPE GetType(void) const =0
種類を取得します
virtual void SetWorldPosition(const Mix::Vector3 &pos)=0
ワールドの位置を設定します
ミックス
Definition: AtomicValue.h:6
スタティックプレーン
Definition: IObject.h:20
virtual UInt32 Debug_GetDrawFlags(void) const =0
デバッグ : 描画フラグを取得します
virtual Mix::Vector3 GetWorldPosition(void) const =0
ワールドの位置を取得します
virtual void SetUserIndex(Int32 index)=0
ユーザーインデックスを設定します
virtual UInt16 GetFilterGroup(void) const =0
フィルターグループを取得します
TYPE
タイプ列挙定数
Definition: IObject.h:18
オブジェクトインターフェース
Definition: IObject.h:13
float Float32
32ビット浮動小数点
Definition: Common.h:83
virtual void Debug_SetDrawFlags(UInt32 flags)=0
デバッグ : 描画フラグを設定します
リファレンスクラス
Definition: Reference.h:12
センサー
Definition: IObject.h:23
リファレンスクラスインクルードファイル
virtual Mix::Quaternion GetWorldRotation(void) const =0
ワールドの回転を取得します
unsigned short UInt16
符号無し16ビット整数
Definition: Common.h:62
virtual Boolean IsInWorld(void) const =0
ワールドに配置されているかどうかを確認します
virtual Boolean AddListener(Mix::Dynamics::IObjectListener *pListener)=0
リスナーを追加します
virtual Boolean GetShape(Mix::Dynamics::IShape **ppShape)=0
シェイプを取得します
virtual void Debug_SetDrawAxisScaling(Float32 scaling)=0
デバッグ : 軸を描画する際のスケールを設定します
BOOL Boolean
32ビットブーリアン
Definition: Common.h:102
リジッドボディ
Definition: IObject.h:22
virtual void SetMaterial(const Mix::Dynamics::MATERIAL &material)=0
マテリアルを設定します
シェイプインターフェース
Definition: IShape.h:16
キネマティックキャラクター
Definition: IObject.h:24
virtual Float32 GetShapeMargin(void) const =0
シェイプの衝突マージンを取得します
virtual Int32 GetUserIndex(void) const =0
ユーザーインデックスを取得します
virtual Float32 Debug_GetDrawAxisScaling(void) const =0
デバッグ : 軸を描画する際のを取得します
マテリアル構造体
Definition: Common.h:1882
virtual void SetWorldTransform(const Mix::Quaternion &rot, const Mix::Vector3 &pos)=0
ワールドトランスフォームを設定します