ランタイム
Mix::Dynamics::IRigidBody Class Referenceabstract

リジッドボディインターフェース More...

#include <IRigidBody.h>

Inheritance diagram for Mix::Dynamics::IRigidBody:
Collaboration diagram for Mix::Dynamics::IRigidBody:

Public Types

enum  STATUS { DEFAULT = 0, STATIC = 1, KINEMATIC = 2 }
 ステータス列挙定数 More...
 
- Public Types inherited from Mix::Dynamics::IObject
enum  TYPE {
  STATIC_PLANE = 0, STATIC_MESH = 1, RIGIDBODY = 2, SENSOR = 3,
  KINEMATIC_CHARACTER = 4, VEHICLE = 5
}
 タイプ列挙定数 More...
 

Public Member Functions

virtual Boolean IsSimulationEnabled (void) const =0
 シミュレーションが有効かどうかを取得します More...
 
virtual void SetSimulationEnabled (Boolean state)=0
 シミュレーションを有効にするかどうかを設定します More...
 
virtual Float32 GetMass (void) const =0
 質量を取得します More...
 
virtual void SetMass (Float32 mass)=0
 質量を設定します More...
 
virtual Mix::Dynamics::IRigidBody::STATUS GetStatus (void) const =0
 状態を取得します More...
 
virtual Boolean SetStatus (Mix::Dynamics::IRigidBody::STATUS status)=0
 状態を設定します More...
 
virtual Boolean IsAlwaysActive (void) const =0
 活動設定を取得します More...
 
virtual Boolean SetAlwaysActive (Boolean state)=0
 活動設定をします More...
 
virtual Boolean IsActive (void) const =0
 活動状態を取得します More...
 
virtual Boolean Activate (void)=0
 活動状態にします More...
 
virtual Boolean Deactivate (Boolean bFroce=False)=0
 非活動状態にします More...
 
virtual Mix::Vector3 GetLinearFactor (void) const =0
 移動のファクタを設定します More...
 
virtual void SetLinearFactor (const Mix::Vector3 &factor)=0
 移動のファクタを設定します More...
 
virtual Float32 GetLinearDamping (void) const =0
 移動の減衰値を取得します More...
 
virtual void SetLinearDamping (Float32 damping)=0
 移動の減衰値を設定します More...
 
virtual Mix::Vector3 GetLinearVelocity (void)=0
 移動速度を取得します More...
 
virtual Boolean SetLinearVelocity (const Mix::Vector3 &velocity)=0
 移動速度を設定します More...
 
virtual Float32 GetLinearSleepingThresholds (void) const =0
 移動を停止する速度を取得します More...
 
virtual void SetLinearSleepingThresholds (Float32 thresholds)=0
 移動を停止する速度を設定します More...
 
virtual Mix::Vector3 GetAngularFactor (void) const =0
 回転のファクタを設定します More...
 
virtual void SetAngularFactor (const Mix::Vector3 &factor)=0
 回転のファクタを設定します More...
 
virtual Float32 GetAngularDamping (void) const =0
 回転の減衰値を取得します More...
 
virtual void SetAngularDamping (Float32 damping)=0
 回転の減衰値を設定します More...
 
virtual Mix::Vector3 GetAngularVelocity (void)=0
 回転速度を取得します More...
 
virtual Boolean SetAngularVelocity (const Mix::Vector3 &velocity)=0
 回転速度を設定します More...
 
virtual Float32 GetAngularSleepingThresholds (void) const =0
 回転を停止する速度を取得します More...
 
virtual void SetAngularSleepingThresholds (Float32 thresholds)=0
 回転を停止する速度を設定します More...
 
virtual Boolean ApplyLinearImpulse (const Mix::Vector3 &impulse)=0
 移動に撃力を適用します More...
 
virtual Boolean ApplyAngularImpulse (const Mix::Vector3 &impulse)=0
 回転に撃力を適用します More...
 
virtual Boolean ApplyImpulse (const Mix::Vector3 &impulse, const Mix::Vector3 &pos)=0
 指定した位置に撃力を適用します More...
 
virtual Mix::Vector3 GetTotalLinearForce (void)=0
 移動に適用されている力を取得します More...
 
virtual Mix::Vector3 GetTotalAngularForce (void)=0
 回転に適用されている力を取得します More...
 
virtual Boolean ApplyLinearForce (const Mix::Vector3 &force)=0
 移動に力を適用します More...
 
virtual Boolean ApplyAngularForce (const Mix::Vector3 &force)=0
 回転に力を適用します More...
 
virtual Boolean ApplyForce (const Mix::Vector3 &force, const Mix::Vector3 &pos)=0
 指定した位置に力を適用します More...
 
virtual void ClearForce (void)=0
 適用されている力をクリアします More...
 
virtual void ClearMotion (void)=0
 モーションをクリアします More...
 
virtual void ClearMotion (const Mix::Quaternion &rot, const Mix::Vector3 &pos)=0
 モーションをクリアします More...
 
virtual Boolean UpdateLocalInertia (void)=0
 慣性テンソルを更新します More...
 
- Public Member Functions inherited from Mix::Dynamics::IObject
virtual Mix::Dynamics::IObject::TYPE GetType (void) const =0
 種類を取得します More...
 
virtual Boolean GetShape (Mix::Dynamics::IShape **ppShape)=0
 シェイプを取得します More...
 
virtual Float32 GetShapeMargin (void) const =0
 シェイプの衝突マージンを取得します More...
 
virtual void SetShapeMargin (Float32 margin)=0
 シェイプの衝突マージンを設定します More...
 
virtual UInt16 GetFilterGroup (void) const =0
 フィルターグループを取得します More...
 
virtual void SetFilterGroup (UInt16 filterGroup)=0
 フィルターグループを設定します More...
 
virtual UInt16 GetFilterMask (void) const =0
 フィルターマスクを取得します More...
 
virtual void SetFilterMask (UInt16 filterMask)=0
 フィルターマスクを設定します More...
 
virtual const Mix::Dynamics::MATERIALGetMaterial (void) const =0
 マテリアルを取得します More...
 
virtual void SetMaterial (const Mix::Dynamics::MATERIAL &material)=0
 マテリアルを設定します More...
 
virtual Mix::Quaternion GetWorldRotation (void) const =0
 ワールドの回転を取得します More...
 
virtual Mix::Vector3 GetWorldPosition (void) const =0
 ワールドの位置を取得します More...
 
virtual Mix::Matrix4x4 GetWorldMatrix (void) const =0
 ワールド行列を取得します More...
 
virtual void SetWorldRotation (const Mix::Quaternion &rot)=0
 ワールドの回転を設定します More...
 
virtual void SetWorldPosition (const Mix::Vector3 &pos)=0
 ワールドの位置を設定します More...
 
virtual void SetWorldTransform (const Mix::Quaternion &rot, const Mix::Vector3 &pos)=0
 ワールドトランスフォームを設定します More...
 
virtual Boolean IsInWorld (void) const =0
 ワールドに配置されているかどうかを確認します More...
 
virtual Mix::Geometry::AABB GetBounds (void) const =0
 境界を取得します More...
 
virtual Boolean AddListener (Mix::Dynamics::IObjectListener *pListener)=0
 リスナーを追加します More...
 
virtual void RemoveListener (Mix::Dynamics::IObjectListener *pListener)=0
 リスナーを削除します More...
 
virtual Int32 GetUserIndex (void) const =0
 ユーザーインデックスを取得します More...
 
virtual void SetUserIndex (Int32 index)=0
 ユーザーインデックスを設定します More...
 
virtual void * GetUserPtr (void) const =0
 ユーザーポインタを取得します More...
 
virtual void SetUserPtr (void *pData)=0
 ユーザーポインタを設定します More...
 
virtual UInt32 Debug_GetDrawFlags (void) const =0
 デバッグ : 描画フラグを取得します More...
 
virtual void Debug_SetDrawFlags (UInt32 flags)=0
 デバッグ : 描画フラグを設定します More...
 
virtual Float32 Debug_GetDrawAxisScaling (void) const =0
 デバッグ : 軸を描画する際のを取得します More...
 
virtual void Debug_SetDrawAxisScaling (Float32 scaling)=0
 デバッグ : 軸を描画する際のスケールを設定します More...
 
virtual void Debug_Draw (Mix::Graphics::Utility::IPerspectiveRenderer *pPerspectiveRenderer, Float32 opacity=1.0f)=0
 デバッグ描画をします More...
 
- Public Member Functions inherited from Mix::Reference
void AddRef (void)
 参照数を 1 増やします More...
 
void Release (void)
 参照数を 1 減らします More...
 
Long32 GetRefCount (void)
 参照数を取得します More...
 

Protected Member Functions

virtual ~IRigidBody (void)
 デストラクタ More...
 
- Protected Member Functions inherited from Mix::Dynamics::IObject
virtual ~IObject (void)
 デストラクタ More...
 
- Protected Member Functions inherited from Mix::Reference
 MIX_DECLARE_ALLOCATOR ()
 
 Reference (void)
 コンストラクタ More...
 
 Reference (Long32 count)
 コンストラクタ More...
 
virtual ~Reference (void)
 デストラクタ More...
 

Detailed Description

リジッドボディインターフェース

Note
リジッドボディとはワールドに配置することができるオブジェクトであり、種類によって影響の仕方が変わります。

ダイナミック( Mix::Dynamics::RIGIDBODY_TYPE_DYNAMIC )
質量があり、毎フレームごとに姿勢が更新されます。

スタティック( Mix::Dynamics::RIGIDBODY_TYPE_STATIC )
質量が 0 であり、衝突はしますが、動くことはありません。

キネマティック( Mix::Dynamics::RIGIDBODY_TYPE_KINEMATIC )
質量が 0 であり、ダイナミックリジッドボディを押したりすることはできますが、
他のダイナミックリジッドボディからの影響を受けることはありません。( 押されたりすることはない )

トリガー( Mix::Dynamics::RIGIDBODY_TYPE_TRIGGER )
質量が 0 であり、他のリジッドボディと衝突することはありません。

このうち「スタティック」「キネマティック」「トリガー」では以下のメソッドは機能しません。

SetAlwaysActive Activate
SetGravityAcceleration
SetLinearDamping
SetAngularDamping
SetLinearVelocity
SetAngularVelocity
ApplyCentralForce
ApplyForce
ApplyTorque
ApplyCentralImpulse
ApplyTorqueImpulse
ApplyImpulse
ClearForces

これは質量が 0 であることから、無限質量物体として扱われ、何かしらの力が加わっても動かないということを意味します。

Member Enumeration Documentation

ステータス列挙定数

Enumerator
DEFAULT 

デフォルト

Note
「衝突」「応答」を行う、質量を持った物体を表します。
STATIC 

スタティック

Note
「衝突」のみを行う、動かすことができない質量を持たない物体を表します。
KINEMATIC 

キネマティック

Note
「衝突」のみを行う、動かすことができる質量を持たない物体を表します。

Constructor & Destructor Documentation

virtual Mix::Dynamics::IRigidBody::~IRigidBody ( void  )
inlineprotectedvirtual

デストラクタ

Member Function Documentation

virtual Boolean Mix::Dynamics::IRigidBody::IsSimulationEnabled ( void  ) const
pure virtual

シミュレーションが有効かどうかを取得します

Returns
有効な場合は True を返します
virtual void Mix::Dynamics::IRigidBody::SetSimulationEnabled ( Boolean  state)
pure virtual

シミュレーションを有効にするかどうかを設定します

Parameters
[in]state有効にする場合は True
virtual Float32 Mix::Dynamics::IRigidBody::GetMass ( void  ) const
pure virtual

質量を取得します

Returns
質量を取得します
virtual void Mix::Dynamics::IRigidBody::SetMass ( Float32  mass)
pure virtual

質量を設定します

Parameters
[in]mass質量( mass >= 0.0f )
Note
SetStatus で Mix::Dynamics::RIGIDBODY_DEFAULT に設定されている場合に 0.0f 以下の値を設定すると、
自動的に Mix::Dynamics::RIGIDBODY_STATIC に切り替わります。
また Mix::Dynamics::RIGIDBODY_STATIC に設定されている場合に 0.0f より大きい値が設定されると、 Mix::Dynamics::RIGIDBODY_DEFAULT に切り替わります。

※Mix::Dynamics::RIGIDBODY_KINEMATIC に設定されている場合、
GetMass は設定された値を返しますが、内部的には無限質量物体( 質量=0 )のままになります。
SetType で Mix::Dynamics::RIGIDBODY_DEFAULT を設定しない限り、質量物体にはなりません。
virtual Mix::Dynamics::IRigidBody::STATUS Mix::Dynamics::IRigidBody::GetStatus ( void  ) const
pure virtual

状態を取得します

Returns
状態を表す Mix::Dynamics::IRigidBody::STATUS 列挙定数を返します
virtual Boolean Mix::Dynamics::IRigidBody::SetStatus ( Mix::Dynamics::IRigidBody::STATUS  status)
pure virtual

状態を設定します

Parameters
[in]status状態を表す Mix::Dynamics::IRigidBody::STATUS 列挙定数
Returns
成功した場合は True を返します
Note
質量が0の状態でステータスをデフォルトに設定しようとした場合、このメソッドは False を返します
virtual Boolean Mix::Dynamics::IRigidBody::IsAlwaysActive ( void  ) const
pure virtual

活動設定を取得します

Returns
常に活動状態に設定されている場合は True を返します
virtual Boolean Mix::Dynamics::IRigidBody::SetAlwaysActive ( Boolean  state)
pure virtual

活動設定をします

Parameters
[in]state常に活動状態にする場合は True
Returns
成功した場合は True を返します
Note
ステータスが「スタティック」の場合、このメソッドは False を返します
virtual Boolean Mix::Dynamics::IRigidBody::IsActive ( void  ) const
pure virtual

活動状態を取得します

Returns
活動状態の場合は True を返します
virtual Boolean Mix::Dynamics::IRigidBody::Activate ( void  )
pure virtual

活動状態にします

Returns
成功した場合は True を返します
Note
ステータスが「スタティック」の場合、このメソッドは False を返します
virtual Boolean Mix::Dynamics::IRigidBody::Deactivate ( Boolean  bFroce = False)
pure virtual

非活動状態にします

Parameters
[in]bFroce強制的に非活動状態にする場合は True
Returns
成功した場合は True を返します
Note
ステータスが「スタティック」「キネマティック」の場合、このメソッドは False を返します
virtual Mix::Vector3 Mix::Dynamics::IRigidBody::GetLinearFactor ( void  ) const
pure virtual

移動のファクタを設定します

Returns
移動のファクタを表す Mix::Vector3 クラスを返します
virtual void Mix::Dynamics::IRigidBody::SetLinearFactor ( const Mix::Vector3 factor)
pure virtual

移動のファクタを設定します

Parameters
[in]factor移動のファクタを表す Mix::Vector3 クラス
Note
Mix::Vector3( 0.0f, 0.0f, 0.0f ) を指定すると移動しなくなります
virtual Float32 Mix::Dynamics::IRigidBody::GetLinearDamping ( void  ) const
pure virtual

移動の減衰値を取得します

Returns
移動の減衰値を返します
virtual void Mix::Dynamics::IRigidBody::SetLinearDamping ( Float32  damping)
pure virtual

移動の減衰値を設定します

Parameters
[in]damping移動における減衰値( 0.0f <= damping < 1.0f )
virtual Mix::Vector3 Mix::Dynamics::IRigidBody::GetLinearVelocity ( void  )
pure virtual

移動速度を取得します

Returns
移動速度を表す Mix::Vector3 クラスを返します
virtual Boolean Mix::Dynamics::IRigidBody::SetLinearVelocity ( const Mix::Vector3 velocity)
pure virtual

移動速度を設定します

Parameters
[in]velocity線形速度を表す Mix::Vector3 クラス
virtual Float32 Mix::Dynamics::IRigidBody::GetLinearSleepingThresholds ( void  ) const
pure virtual

移動を停止する速度を取得します

Returns
移動を停止する速度を返します
virtual void Mix::Dynamics::IRigidBody::SetLinearSleepingThresholds ( Float32  thresholds)
pure virtual

移動を停止する速度を設定します

Parameters
[in]thresholds移動を停止する速度
virtual Mix::Vector3 Mix::Dynamics::IRigidBody::GetAngularFactor ( void  ) const
pure virtual

回転のファクタを設定します

Returns
回転のファクタを表す Mix::Vector3 クラスを返します
virtual void Mix::Dynamics::IRigidBody::SetAngularFactor ( const Mix::Vector3 factor)
pure virtual

回転のファクタを設定します

Parameters
[in]factor回転のファクタを表す Mix::Vector3 クラス
Note
Mix::Vector3( 0.0f, 0.0f, 0.0f ) を設定すると回転しなくなります
virtual Float32 Mix::Dynamics::IRigidBody::GetAngularDamping ( void  ) const
pure virtual

回転の減衰値を取得します

Returns
回転の減衰値を返します
virtual void Mix::Dynamics::IRigidBody::SetAngularDamping ( Float32  damping)
pure virtual

回転の減衰値を設定します

Parameters
[in]damping回転運動における減衰値( 0.0f <= damping < 1.0f )
virtual Mix::Vector3 Mix::Dynamics::IRigidBody::GetAngularVelocity ( void  )
pure virtual

回転速度を取得します

Returns
回転速度を表す Mix::Vector3 クラスを返します
virtual Boolean Mix::Dynamics::IRigidBody::SetAngularVelocity ( const Mix::Vector3 velocity)
pure virtual

回転速度を設定します

Parameters
[in]velocity回転速度を表す Mix::Vector3 クラス
virtual Float32 Mix::Dynamics::IRigidBody::GetAngularSleepingThresholds ( void  ) const
pure virtual

回転を停止する速度を取得します

Returns
回転を停止する速度を返します
virtual void Mix::Dynamics::IRigidBody::SetAngularSleepingThresholds ( Float32  thresholds)
pure virtual

回転を停止する速度を設定します

Parameters
[in]thresholds回転を停止する速度
virtual Boolean Mix::Dynamics::IRigidBody::ApplyLinearImpulse ( const Mix::Vector3 impulse)
pure virtual

移動に撃力を適用します

Parameters
[in]impulse適用する撃力を表す Mix::Vector3 クラス
virtual Boolean Mix::Dynamics::IRigidBody::ApplyAngularImpulse ( const Mix::Vector3 impulse)
pure virtual

回転に撃力を適用します

Parameters
[in]impulse適用する撃力を表す Mix::Vector3 クラス
virtual Boolean Mix::Dynamics::IRigidBody::ApplyImpulse ( const Mix::Vector3 impulse,
const Mix::Vector3 pos 
)
pure virtual

指定した位置に撃力を適用します

Parameters
[in]impulse適用する撃力を表す Mix::Vector3 クラス
[in]pos撃力を適用する位置を表す Mix::Vector3 クラス
virtual Mix::Vector3 Mix::Dynamics::IRigidBody::GetTotalLinearForce ( void  )
pure virtual

移動に適用されている力を取得します

Returns
力を表す Mix::Vector3 クラスを返します
virtual Mix::Vector3 Mix::Dynamics::IRigidBody::GetTotalAngularForce ( void  )
pure virtual

回転に適用されている力を取得します

Returns
力を表す Mix::Vector3 クラスを返します
virtual Boolean Mix::Dynamics::IRigidBody::ApplyLinearForce ( const Mix::Vector3 force)
pure virtual

移動に力を適用します

Parameters
[in]force適用する力を表す Mix::Vector3 クラス
virtual Boolean Mix::Dynamics::IRigidBody::ApplyAngularForce ( const Mix::Vector3 force)
pure virtual

回転に力を適用します

Parameters
[in]force適用する力を表す Mix::Vector3 クラス
virtual Boolean Mix::Dynamics::IRigidBody::ApplyForce ( const Mix::Vector3 force,
const Mix::Vector3 pos 
)
pure virtual

指定した位置に力を適用します

Parameters
[in]force適用する力を表す Mix::Vector3 クラス
[in]pos力を適用する位置を表す Mix::Vector3 クラス
virtual void Mix::Dynamics::IRigidBody::ClearForce ( void  )
pure virtual

適用されている力をクリアします

virtual void Mix::Dynamics::IRigidBody::ClearMotion ( void  )
pure virtual

モーションをクリアします

Note
全ての速度、全てのフォース、補間用パラメータをクリアします
virtual void Mix::Dynamics::IRigidBody::ClearMotion ( const Mix::Quaternion rot,
const Mix::Vector3 pos 
)
pure virtual

モーションをクリアします

Parameters
[in]rotクリア後の回転を表す Mix::Quaternion クラス
[in]posクリア後の位置を表す Mix::Vector3 クラス
virtual Boolean Mix::Dynamics::IRigidBody::UpdateLocalInertia ( void  )
pure virtual

慣性テンソルを更新します

Returns
成功した場合は True を返します
Note
形状が変化するシェイプ、主にコンパウンドシェイプ( Mix::Dynamics::ICompoundShape ) に子を追加した際に使用します。
また GetStatus で返される値が Mix::Dynamics::RIGIDBODY_STATIC もしくわ Mix::Dynamics::RIGIDBODY_KINEMATIC の場合は、常に False を返します。

The documentation for this class was generated from the following file: