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

ランタイム

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

- Class List
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Protected Member Functions | List of all members
Mix::Dynamics::IRigidBody Class Referenceabstract

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

`#include <IRigidBody.h>`

Inheritance diagram for Mix::Dynamics::IRigidBody:
[legend]
Collaboration diagram for Mix::Dynamics::IRigidBody:
[legend]

## 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::MATERIAL & | GetMaterial (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

enum Mix::Dynamics::IRigidBody::STATUS

ステータス列挙定数

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
  質量が０の状態でステータスをデフォルトに設定しようとした場合、このメソッドは 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:

- Mix/Dynamics/IRigidBody.h