ランタイム
IRigidBody.h
Go to the documentation of this file.
1 #pragma once
2 
5 
6 #include "Mix/Dynamics/IObject.h"
7 
8 namespace Mix{ namespace Dynamics{
9 
47  {
48  public:
51  enum STATUS
52  {
55  DEFAULT = 0,
56 
59  STATIC = 1,
60 
63  KINEMATIC = 2,
64  };
65 
66  protected:
68  virtual ~IRigidBody( void ){}
69 
70  public:
73  virtual Boolean IsSimulationEnabled( void ) const = 0;
76  virtual void SetSimulationEnabled( Boolean state ) = 0;
77 
80  virtual Float32 GetMass( void ) const = 0;
92  virtual void SetMass( Float32 mass ) = 0;
93 
96  virtual Mix::Dynamics::IRigidBody::STATUS GetStatus( void ) const = 0;
102 
105  virtual Boolean IsAlwaysActive( void ) const = 0;
110  virtual Boolean SetAlwaysActive( Boolean state ) = 0;
111 
114  virtual Boolean IsActive( void ) const = 0;
118  virtual Boolean Activate( void ) = 0;
123  virtual Boolean Deactivate( Boolean bFroce = False ) = 0;
124 
127  virtual Mix::Vector3 GetLinearFactor( void ) const = 0;
131  virtual void SetLinearFactor( const Mix::Vector3& factor ) = 0;
132 
135  virtual Float32 GetLinearDamping( void ) const = 0;
138  virtual void SetLinearDamping( Float32 damping ) = 0;
139 
142  virtual Mix::Vector3 GetLinearVelocity( void ) = 0;
145  virtual Boolean SetLinearVelocity( const Mix::Vector3& velocity ) = 0;
146 
149  virtual Float32 GetLinearSleepingThresholds( void ) const = 0;
152  virtual void SetLinearSleepingThresholds( Float32 thresholds ) = 0;
153 
156  virtual Mix::Vector3 GetAngularFactor( void ) const = 0;
160  virtual void SetAngularFactor( const Mix::Vector3& factor ) = 0;
161 
164  virtual Float32 GetAngularDamping( void ) const = 0;
167  virtual void SetAngularDamping( Float32 damping ) = 0;
168 
171  virtual Mix::Vector3 GetAngularVelocity( void ) = 0;
174  virtual Boolean SetAngularVelocity( const Mix::Vector3& velocity ) = 0;
175 
178  virtual Float32 GetAngularSleepingThresholds( void ) const = 0;
181  virtual void SetAngularSleepingThresholds( Float32 thresholds ) = 0;
182 
185  virtual Boolean ApplyLinearImpulse( const Mix::Vector3& impulse ) = 0;
188  virtual Boolean ApplyAngularImpulse( const Mix::Vector3& impulse ) = 0;
192  virtual Boolean ApplyImpulse( const Mix::Vector3& impulse, const Mix::Vector3& pos ) = 0;
193 
196  virtual Mix::Vector3 GetTotalLinearForce( void ) = 0;
199  virtual Mix::Vector3 GetTotalAngularForce( void ) = 0;
202  virtual Boolean ApplyLinearForce( const Mix::Vector3& force ) = 0;
205  virtual Boolean ApplyAngularForce( const Mix::Vector3& force ) = 0;
209  virtual Boolean ApplyForce( const Mix::Vector3& force, const Mix::Vector3& pos ) = 0;
211  virtual void ClearForce( void ) = 0;
212 
215  virtual void ClearMotion( void ) = 0;
219  virtual void ClearMotion( const Mix::Quaternion& rot, const Mix::Vector3& pos ) = 0;
220 
226  virtual Boolean UpdateLocalInertia( void ) = 0;
227  };
228 
229 }}
スタティック
Definition: IRigidBody.h:59
3次元浮動小数点ベクトルクラス
Definition: Vector3.h:12
virtual Mix::Vector3 GetLinearVelocity(void)=0
移動速度を取得します
virtual void ClearMotion(void)=0
モーションをクリアします
virtual Boolean SetAngularVelocity(const Mix::Vector3 &velocity)=0
回転速度を設定します
デフォルト
Definition: IRigidBody.h:55
virtual Float32 GetAngularSleepingThresholds(void) const =0
回転を停止する速度を取得します
virtual Boolean SetStatus(Mix::Dynamics::IRigidBody::STATUS status)=0
状態を設定します
virtual Mix::Vector3 GetTotalAngularForce(void)=0
回転に適用されている力を取得します
virtual Boolean SetAlwaysActive(Boolean state)=0
活動設定をします
virtual Mix::Vector3 GetAngularVelocity(void)=0
回転速度を取得します
オブジェクトインターフェースインクルードファイル
virtual Float32 GetLinearSleepingThresholds(void) const =0
移動を停止する速度を取得します
クォータニオンクラス
Definition: Quaternion.h:10
virtual Boolean Activate(void)=0
活動状態にします
virtual Boolean ApplyAngularForce(const Mix::Vector3 &force)=0
回転に力を適用します
virtual Mix::Vector3 GetTotalLinearForce(void)=0
移動に適用されている力を取得します
virtual void SetLinearSleepingThresholds(Float32 thresholds)=0
移動を停止する速度を設定します
キネマティック
Definition: IRigidBody.h:63
virtual void ClearForce(void)=0
適用されている力をクリアします
virtual Boolean ApplyForce(const Mix::Vector3 &force, const Mix::Vector3 &pos)=0
指定した位置に力を適用します
virtual Boolean SetLinearVelocity(const Mix::Vector3 &velocity)=0
移動速度を設定します
virtual Boolean ApplyLinearImpulse(const Mix::Vector3 &impulse)=0
移動に撃力を適用します
virtual void SetLinearFactor(const Mix::Vector3 &factor)=0
移動のファクタを設定します
virtual Mix::Dynamics::IRigidBody::STATUS GetStatus(void) const =0
状態を取得します
virtual Boolean IsAlwaysActive(void) const =0
活動設定を取得します
virtual Mix::Vector3 GetLinearFactor(void) const =0
移動のファクタを設定します
virtual Boolean UpdateLocalInertia(void)=0
慣性テンソルを更新します
ミックス
Definition: AtomicValue.h:6
virtual void SetSimulationEnabled(Boolean state)=0
シミュレーションを有効にするかどうかを設定します
#define False
Boolean型の偽値
Definition: Common.h:108
STATUS
ステータス列挙定数
Definition: IRigidBody.h:51
virtual void SetAngularSleepingThresholds(Float32 thresholds)=0
回転を停止する速度を設定します
リジッドボディインターフェース
Definition: IRigidBody.h:46
virtual Boolean IsActive(void) const =0
活動状態を取得します
virtual Float32 GetMass(void) const =0
質量を取得します
オブジェクトインターフェース
Definition: IObject.h:13
float Float32
32ビット浮動小数点
Definition: Common.h:83
virtual void SetMass(Float32 mass)=0
質量を設定します
virtual Float32 GetLinearDamping(void) const =0
移動の減衰値を取得します
virtual void SetAngularDamping(Float32 damping)=0
回転の減衰値を設定します
virtual void SetLinearDamping(Float32 damping)=0
移動の減衰値を設定します
virtual Boolean ApplyLinearForce(const Mix::Vector3 &force)=0
移動に力を適用します
BOOL Boolean
32ビットブーリアン
Definition: Common.h:102
virtual void SetAngularFactor(const Mix::Vector3 &factor)=0
回転のファクタを設定します
virtual Boolean IsSimulationEnabled(void) const =0
シミュレーションが有効かどうかを取得します
virtual Mix::Vector3 GetAngularFactor(void) const =0
回転のファクタを設定します
virtual Boolean ApplyAngularImpulse(const Mix::Vector3 &impulse)=0
回転に撃力を適用します
virtual ~IRigidBody(void)
デストラクタ
Definition: IRigidBody.h:68
virtual Boolean Deactivate(Boolean bFroce=False)=0
非活動状態にします
virtual Boolean ApplyImpulse(const Mix::Vector3 &impulse, const Mix::Vector3 &pos)=0
指定した位置に撃力を適用します
virtual Float32 GetAngularDamping(void) const =0
回転の減衰値を取得します