ランタイム
IVehicle.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 
13  {
14  public:
17  struct TIRE
18  {
21  };
22 
25  struct SUSPENSION
26  {
33  };
34 
37  struct CONTACT
38  {
41  };
42 
43  protected:
45  virtual ~IVehicleWheel( void ) {}
46 
47  public:
50  virtual Boolean IsFront( void ) const = 0;
53  virtual const Mix::Vector3& GetDirection( void ) const = 0;
56  virtual const Mix::Vector3& GetAxis( void ) const = 0;
57 
60  virtual const Mix::Vector3& GetConnectionPoint( void ) const = 0;
63  virtual void SetConnectionPoint( const Mix::Vector3& cp ) = 0;
64 
67  virtual Float32 GetRollInfluence( void ) const = 0;
71  virtual void SetRollInfluence( Float32 rollInfluence ) = 0;
72 
75  virtual const Mix::Dynamics::IVehicleWheel::TIRE& GetTire( void ) const = 0;
78  virtual void SetTire( const Mix::Dynamics::IVehicleWheel::TIRE& tire ) = 0;
79 
82  virtual const Mix::Dynamics::IVehicleWheel::SUSPENSION& GetSuspension( void ) const = 0;
85  virtual void SetSuspension( const Mix::Dynamics::IVehicleWheel::SUSPENSION& suspension ) = 0;
86 
89  virtual Float32 GetSteeringValue( void ) const = 0;
92  virtual void SetSteeringValue( Float32 value ) = 0;
93 
96  virtual Float32 GetEngineForce( void ) const = 0;
99  virtual void SetEngineForce( Float32 force ) = 0;
100 
103  virtual Float32 GetBreakingForce( void ) const = 0;
106  virtual void SetBreakingForce( Float32 force ) = 0;
107 
110  virtual Boolean OnGround( void ) const = 0;
111 
115  virtual Mix::Dynamics::IVehicleWheel::CONTACT GetContact( void ) const = 0;
116 
119  virtual const Mix::Matrix4x4& GetWorldMatrix( void ) = 0;
120  };
121 
125  {
126  protected:
128  virtual ~IVehicle( void ) {}
129 
130  public:
133  virtual void Reset( void ) = 0;
138  virtual void Reset( const Mix::Quaternion& worldRot, const Mix::Vector3& worldPos ) = 0;
139 
142  virtual UInt32 GetWheelNum( void ) const = 0;
148  virtual Boolean GetWheel( UInt32 wheelIndex, Mix::Dynamics::IVehicleWheel** ppWheel ) = 0;
152  virtual Mix::Dynamics::IVehicleWheel* GetWheelPtr( UInt32 wheelIndex ) const = 0;
153 
156  virtual Float32 GetCurrentSpeedKmHour( void ) const = 0;
157  };
158 
159 }}
3次元浮動小数点ベクトルクラス
Definition: Vector3.h:12
virtual void SetConnectionPoint(const Mix::Vector3 &cp)=0
接続位置を設定します
virtual Boolean IsFront(void) const =0
フロントかどうかを取得します
virtual UInt32 GetWheelNum(void) const =0
ホイールの数を取得します
virtual void SetBreakingForce(Float32 force)=0
ブレーキの力を設定します
virtual void SetEngineForce(Float32 force)=0
エンジンの力を設定します
Float32 restLength
長さ(メートル単位)
Definition: IVehicle.h:27
オブジェクトインターフェースインクルードファイル
Float32 radius
半径
Definition: IVehicle.h:19
クォータニオンクラス
Definition: Quaternion.h:10
ビハイクルインターフェース
Definition: IVehicle.h:124
virtual ~IVehicleWheel(void)
デストラクタ
Definition: IVehicle.h:45
Mix::Vector3 worldPosition
接触位置のワールド座標
Definition: IVehicle.h:39
virtual const Mix::Vector3 & GetDirection(void) const =0
方向を取得します
virtual Float32 GetEngineForce(void) const =0
エンジンを力を取得します
Float32 damperRelaxation
バネが伸びる際に適用されるダンパーの減衰値
Definition: IVehicle.h:31
virtual void SetRollInfluence(Float32 rollInfluence)=0
車体が転がる影響度を設定します
4x4行列クラス
Definition: Matrix4x4.h:12
Float32 damperCompression
バネが縮む際に適用されるダンパーの減衰値
Definition: IVehicle.h:32
Float32 springStiffness
バネの剛さ
Definition: IVehicle.h:30
unsigned int UInt32
符号無し32ビット整数
Definition: Common.h:68
virtual void SetSteeringValue(Float32 value)=0
ステアリングの値を設定します
Float32 maxTravelCm
稼動範囲(センチメートル単位)
Definition: IVehicle.h:28
virtual void SetSuspension(const Mix::Dynamics::IVehicleWheel::SUSPENSION &suspension)=0
サスペンションを設定します
virtual Mix::Dynamics::IVehicleWheel::CONTACT GetContact(void) const =0
接触を取得します
virtual const Mix::Dynamics::IVehicleWheel::SUSPENSION & GetSuspension(void) const =0
サスペンションを取得します
virtual Float32 GetRollInfluence(void) const =0
車体が転がる影響度を取得します
virtual Mix::Dynamics::IVehicleWheel * GetWheelPtr(UInt32 wheelIndex) const =0
ホイールのポインタを取得します
Mix::Vector3 worldNormal
接触位置のワールド法線
Definition: IVehicle.h:40
virtual ~IVehicle(void)
デストラクタ
Definition: IVehicle.h:128
virtual Float32 GetCurrentSpeedKmHour(void) const =0
毎時の速度(キロメートル単位)を取得します
Float32 friction
摩擦係数
Definition: IVehicle.h:20
ミックス
Definition: AtomicValue.h:6
virtual Boolean OnGround(void) const =0
接地しているかどうかを確認します
virtual const Mix::Vector3 & GetConnectionPoint(void) const =0
接続位置を取得します
virtual Boolean GetWheel(UInt32 wheelIndex, Mix::Dynamics::IVehicleWheel **ppWheel)=0
ホイールを取得します
オブジェクトインターフェース
Definition: IObject.h:13
float Float32
32ビット浮動小数点
Definition: Common.h:83
リファレンスクラス
Definition: Reference.h:12
virtual Float32 GetBreakingForce(void) const =0
ブレーキの力を取得します
コンタクト構造体
Definition: IVehicle.h:37
virtual void Reset(void)=0
リセットします
ビハイクルホイールインターフェース
Definition: IVehicle.h:12
タイヤ構造体
Definition: IVehicle.h:17
virtual const Mix::Dynamics::IVehicleWheel::TIRE & GetTire(void) const =0
タイヤを取得します
virtual void SetTire(const Mix::Dynamics::IVehicleWheel::TIRE &tire)=0
タイヤを設定します
サスペンション構造体
Definition: IVehicle.h:25
BOOL Boolean
32ビットブーリアン
Definition: Common.h:102
Float32 maxForce
最大フォース
Definition: IVehicle.h:29
virtual Float32 GetSteeringValue(void) const =0
ステアリングの値を取得します
virtual const Mix::Vector3 & GetAxis(void) const =0
軸を取得します
virtual const Mix::Matrix4x4 & GetWorldMatrix(void)=0
ワールド行列を取得します