OROCHI
 
Loading...
Searching...
No Matches
GxSysDynamics.h
Go to the documentation of this file.
1//===========================================================================
11//===========================================================================
12#pragma once
13
15
16// todo:static変数化
17#define PHYSICS_GRAVITY (9.8f)
18#define PHYSICS_COLLISION_MARGIN (0.00f)
19#define PHYSICS_DEFAULT_STACK_ALLOCATOR_SIZE (GxMath::VALUE_32K)
20#define PHYSICS_DEFAULT_MAX_PERSISTENT_MANIFOLD_POOL_SIZE (1)
21#define PHYSICS_DEFAULT_MAX_COLLISION_ALGORITHM_POOL_SIZE (1)
22
23//===========================================================================
25//===========================================================================
27{
28 //-------------------------------------------------------------
30 //-------------------------------------------------------------
32public:
33 // RTTI宣言
34 GX_RTTI_ABSTRACT_CLASS( GxSysDynamics, GxSysDynamicsBase );
35 // ClassBase継承クラス用禁止宣言
37
39 //-----------------------------------------------------------
41 //-----------------------------------------------------------
43
45 GxSysDynamics(void);
47 ~GxSysDynamics(void) override {}
48
50 //-----------------------------------------------------------
52 //-----------------------------------------------------------
54
56 void update(void) override;
57
60
63
65 void eraseWorld(GxDynamics::GxWorld* pSearchWorld);
66
68 void eraseAllWorld(void);
69
71 GxDynamics::GxWorld* getWorld(u32 index);
72
74 void resetAllWorld(void);
75
77 void resetWorld(u32 index);
78
80 GX_FORCE_INLINE virtual b32 reCreateAllWorld(void) { return false; }
81
82#if GX_DEVELOP
84 constexpr void setDevelopDrawTrimeshRange(f32 range) { _developDrawTrimeshRange = range; }
86 constexpr f32 getdevelopDrawTrimeshRange(void) const { return _developDrawTrimeshRange; }
87
89 GX_FORCE_INLINE virtual void setAllocatorDevelop(b32 usesDevelop) {}
90#endif // GX_DEVELOP
91
93 //-----------------------------------------------------------
95 //-----------------------------------------------------------
97public:
102 virtual GxDynamics::GxObject* createObjectFromResource( GxResCollisionObject* pRes, GxDynamics* pDynamics, GxUnitModelBase* pModel, GxMatrixAffine* pMatrix, u32 index );
103
105 //-----------------------------------------------------------
107 //-----------------------------------------------------------
109public:
111
113
114#if GX_DEVELOP
115 f32 _developDrawTrimeshRange;
116#endif //GX_DEVELOP
117
119};
120
121//===========================================================================
123//===========================================================================
125{
126 //-------------------------------------------------------------
128 //-------------------------------------------------------------
130public:
131 // RTTI宣言
132 GX_RTTI_CLASS_NAME(GxCollisionExtraDataDynamics, GxCollisionExtraData, "物理データ");
133
135 //-----------------------------------------------------------
137 //-----------------------------------------------------------
139
142 : _centerMassOffset( 0.f, -1.f, 0.f )
143 , _suspensionTravel( 0.2f )
144 , _suspensionSpring( 2.f )
145 , _suspensionDamper( 2.f )
146 , _suspensionTarget( 0.1f )
147 , _useBodySetting( false )
148 {}
149
151 void copyValue( const GxCollisionExtraData* const pData ) override;
152
154 //-----------------------------------------------------------
156 //-----------------------------------------------------------
158public:
160
161 // サスペンション関係
167
169};
170
171//-------------------------------------------------------------
172// アクセスインターフェイス
173//-------------------------------------------------------------
174GX_FORCE_INLINE GxSysDynamics* getGxSysDynamics(void){ return gx_cast<GxSysDynamics*>( getGxSysDynamicsBase() ); }
175
176GX_PHYSICS_NAMESPACE_END()
T gx_cast(GxClassBaseRoot *pObject)
Definition GxBase.h:264
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
#define GX_PHYSICS_NAMESPACE_BEGIN()
ネームスペースマクロ
Definition GxPhysics.h:28
GX_FORCE_INLINE GxSysDynamicsBase * getGxSysDynamicsBase(void)
アクセスインターフェース
Definition GxSysDynamicsBase.h:90
配列クラス
Definition GxArrayClassBase.h:18
コリジョン拡張データ:物理
Definition GxSysDynamics.h:125
f32 _suspensionDamper
サスのダンパ定数
Definition GxSysDynamics.h:164
f32 _suspensionSpring
サスのバネ定数
Definition GxSysDynamics.h:163
f32 _suspensionTravel
サス移動量最大値
Definition GxSysDynamics.h:162
void copyValue(const GxCollisionExtraData *const pData) override
値代入用関数
Definition GxSysDynamics.cpp:334
GxVector3 _centerMassOffset
重心オフセット
Definition GxSysDynamics.h:159
GxCollisionExtraDataDynamics(void)
デフォルトコンストラクタ
Definition GxSysDynamics.h:141
f32 _suspensionTarget
サスのバネからの力が0になる長さ
Definition GxSysDynamics.h:165
b32 _useBodySetting
本体に設定した値を使用する
Definition GxSysDynamics.h:166
コリジョン拡張データ
Definition GxSysCollision.h:205
GxDynamics基本オブジェクトクラス
Definition GxDynamics.h:519
GxDynamics 基本ワールドクラス
Definition GxDynamics.h:272
物理演算クラス
Definition GxDynamics.h:27
コリジョンリソースクラス
Definition GxResCollisionObject.h:23
物理システムクラス
Definition GxSysDynamicsBase.h:54
物理演算システムクラス
Definition GxSysDynamics.h:27
void eraseAllWorld(void)
全ワールドをリストから削除
Definition GxSysDynamics.cpp:142
GxDynamics::GxWorld * getWorld(u32 index)
指定ワールドを取得
Definition GxSysDynamics.cpp:152
void eraseWorld(GxDynamics::GxWorld *pSearchWorld)
指定ワールドをリストから削除
Definition GxSysDynamics.cpp:113
virtual GxDynamics::GxObject * createObjectFromResource(GxResCollisionObject *pRes, GxDynamics *pDynamics, GxUnitModelBase *pModel, GxMatrixAffine *pMatrix, u32 index)
Definition GxSysDynamics.cpp:202
void resetAllWorld(void)
全てのワールドの状態をリセット
Definition GxSysDynamics.cpp:172
void update(void) override
実行
Definition GxSysDynamics.cpp:44
~GxSysDynamics(void) override
デストラクタ
Definition GxSysDynamics.h:47
virtual GX_FORCE_INLINE b32 reCreateAllWorld(void)
全ワールドのBtワールド、Nxシーンを削除・再生成
Definition GxSysDynamics.h:80
GxSysDynamics(void)
デフォルトコンストラクタ
Definition GxSysDynamics.cpp:32
b32 checkWorld(GxDynamics::GxWorld *pCheckWorld)
指定ワールドが存在するかどうかチェック
Definition GxSysDynamics.cpp:91
void resetWorld(u32 index)
指定したインデックスのワールド状態をリセット
Definition GxSysDynamics.cpp:184
GxArrayClassBase _listWorld
実行するワールドのリスト
Definition GxSysDynamics.h:110
b32 addWorld(GxDynamics::GxWorld *pWorld)
ワールドをリストへ追加
Definition GxSysDynamics.cpp:71
GxDynamics::GxObject ** _ppObjectCompound
複合形状作成用
Definition GxSysDynamics.h:112
モデル基礎クラス
Definition GxUnitModelBase.h:19
アフィン変換行列(行優先)
Definition GxMatrix.h:330
3次元ベクトル
Definition GxVector.h:245
32bitブーリアン
Definition GxDefine.h:173