14#define DYNAMICS_COLLISION_SKIN_WIDTH (0.025f)
15#define DYNAMICS_COLLISION_MARGIN (0.05f)
16#define DYNAMICS_DEFAULT_STACK_ALLOCATOR_SIZE (GxMath::VALUE_32K)
17#define DYNAMICS_DEFAULT_MAX_PERSISTENT_MANIFOLD_POOL_SIZE (1)
18#define DYNAMICS_DEFAULT_MAX_COLLISION_ALGORITHM_POOL_SIZE (1)
19#define DYNAMICS_ALGORITHM_NUM (2)
48 struct GxConvexCallback;
53 static constexpr u32 FLAG_ALL = 0x7fffffff;
75 , _swingLimit1( PI_2 )
76 , _swingLimit2( PI_2 )
77 , _disableCollision( true )
117 void clearList(
void);
123 GxObject* getObject(u32 index);
126 u32 getObjectCount(
void);
129 virtual void deleteObject(GxObject* pObject);
132 virtual void detachObject(GxObject* pObject);
135 virtual void detachConstraint(GxConstraint* pConstraint);
153 virtual GxObject* createConvexShape(
b32 active,
GxMatrixAffine* pMatrix, s32 jointIndex,
const GxVector3& offset,
const GxQuaternion& rotateOffset,
const GxVector3* pVertex, u32 numVertex,
const GxRigidBodyParam& rigidParam, f32 margin);
156 GxObject* createMesh(u32 index,
b32 active,
GxMatrixAffine* pMatrix,
const GxVector3& offset,
const GxQuaternion& rotateOffset,
const GxShapeTrimesh& trimesh, f32 friction = 0.5f,
b32 isCompress =
true,
GxVector3* pAabbMin =
nullptr,
GxVector3* pAabbMax =
nullptr, f32 margin =
DYNAMICS_COLLISION_MARGIN);
165 void setActive(
b32 active);
168 virtual GxConstraint* allocConstraint(
void);
171 GxConstraint* getConstraint(u32 index);
174 u32 getConstraintCount(
void);
205 virtual void prepareCheck(
void);
208 virtual void preUpdate(
void);
211 virtual void postUpdate(
void);
214 void setActiveAll(
b32 active);
225 GX_FORCE_INLINE
void setCallback(DYNAMICS_CALLBACK pCallback) { _pCallback = pCallback; }
227 void executeCallback(
void);
234 GX_FORCE_INLINE
static void setDevelopDraw(
b32 display ) { getGxSysMain()->setDevelopFlag(DEVELOP_FLAG_COLLISION_DRAW_DYNAMICS, display); }
236 GX_FORCE_INLINE
static void setDevelopDrawConstraint(
b32 display) { getGxSysMain()->setDevelopFlag(DEVELOP_FLAG_COLLISION_DRAW_DYNAMICS_CONSTRAINT, display); }
239 GX_FORCE_INLINE
static b32 getDevelopDraw(
void ) {
return getGxSysMain()->isOnDevelopFlag(DEVELOP_FLAG_COLLISION_DRAW_DYNAMICS); }
241 GX_FORCE_INLINE
static b32 getDevelopDrawConstraint(
void ) {
return getGxSysMain()->isOnDevelopFlag(DEVELOP_FLAG_COLLISION_DRAW_DYNAMICS_CONSTRAINT); }
246 virtual GxObject* addObject(
void);
249 GxConstraint* addConstraint(
void);
292 static constexpr u32 MAX_NUM_SURFACE_TYPES = 1;
294 static constexpr u32 DEFAULT_SURFACE_TYPE = 0;
322 virtual void free(
void);
329 virtual void check(
void);
363 GX_FORCE_INLINE
virtual void reset(
void) {}
368 GX_FORCE_INLINE
virtual void setGravity(
const f32 ,
const f32 ,
const f32 ) {}
388 void setMaxTimeStep( f32 timeStep = 1.0f / 60.f, u32 maxIteration = 8 );
488 void freeListClass(
void);
491 void clearListClass(
void);
584 GX_FORCE_INLINE
virtual void reset(
void) {}
867 GX_FORCE_INLINE
virtual void developDraw(
void) {}
1143GX_PHYSICS_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
#define DYNAMICS_DEFAULT_MAX_PERSISTENT_MANIFOLD_POOL_SIZE
物理演算の汎用的な最大プールサイズデフォルト値
Definition GxDynamics.h:17
#define DYNAMICS_COLLISION_MARGIN
物理演算のコリジョンマージン
Definition GxDynamics.h:15
#define DYNAMICS_DEFAULT_STACK_ALLOCATOR_SIZE
物理演算のスタックアロケーターサイズデフォルト値
Definition GxDynamics.h:16
#define DYNAMICS_DEFAULT_MAX_COLLISION_ALGORITHM_POOL_SIZE
物理演算のコリジョンアルゴリズム用最大プールサイズデフォルト値
Definition GxDynamics.h:18
#define GX_PHYSICS_NAMESPACE_BEGIN()
ネームスペースマクロ
Definition GxPhysics.h:28
PRIMITIVE_FILL_MODE
塗りつぶしモード
Definition GxPrimitive.h:31
メモリアロケータリスト
Definition GxAllocator.h:347
配列クラス
Definition GxArrayClassBase.h:18
配列クラス
Definition GxArray.h:18
オブジェクト基底クラス
Definition GxBase.h:88
基底クラス
Definition GxBase.h:51
COLLISION_SHAPE
コリジョン形状
Definition GxCollision.h:38
GxDynamics 拘束クラス
Definition GxDynamics.h:783
virtual GX_FORCE_INLINE b32 createConstraintSpherical(b32, GxDynamics::GxObject *, GxDynamics::GxObject *, const GxVector3 &, const GxVector3 &, b32)
Definition GxDynamics.h:843
GxDynamics * _pManagementClass
自分を管理しているクラス
Definition GxDynamics.h:926
virtual GX_FORCE_INLINE b32 createConstraintRevolute(b32, GxDynamics::GxObject *, GxDynamics::GxObject *, const GxMatrixAffine &, const GxMatrixAffine &, b32)
Definition GxDynamics.h:847
GX_FORCE_INLINE void setActiveFlag(u32 flag, b32 value)
アクティブフラグ設定
Definition GxDynamics.h:902
constexpr GxDynamics * getManagementClass(void) const
管理クラスの取得
Definition GxDynamics.h:911
virtual GX_FORCE_INLINE void setBreakParam(b32, f32, f32)
壊れパラメタ設定
Definition GxDynamics.h:915
constexpr void setManagementClass(GxDynamics *pManagementClass)
管理クラスのセット
Definition GxDynamics.h:908
constexpr TYPE getType(void) const
拘束タイプの取得
Definition GxDynamics.h:884
GX_FORCE_INLINE b32 isActive(void) const
アクティブ取得
Definition GxDynamics.h:895
constexpr u32 getActiveFlagAll(void) const
全アクティブフラグ取得
Definition GxDynamics.h:898
TYPE
拘束タイプ
Definition GxDynamics.h:809
@ REVOLUTE
ヒンジタイプ(1軸周りの回転のみ可能)
@ CONE_TWIST
コーンツイストタイプの拘束(可動範囲を指定できるボールソケット)
@ _6DOF
3軸の回転および平行移動を自由に設定できるフリーな拘束
@ SPHERICAL
ボールソケットタイプ(回転運動のみ可能)
@ POINT_IN_PLANE
2方向直線運動+自由回転
@ PRISMATIC
1方向直線運動のみ可能なタイプ
@ POINT_ON_LINE
1方向直線運動+自由回転
virtual GX_FORCE_INLINE GxMatrixAffine getMatrix(void)
マトリクスを取得
Definition GxDynamics.h:905
constexpr GxDynamics::GxWorld * getRegisterWorld(void) const
登録したワールドのアドレスを取得
Definition GxDynamics.h:887
TYPE _type
拘束タイプ
Definition GxDynamics.h:924
virtual GX_FORCE_INLINE b32 createConstraintRevolute(b32, GxDynamics::GxObject *, GxDynamics::GxObject *, const GxVector3 &, const GxVector3 &, const GxVector3 &, const GxVector3 &, const GxVector3 &, const GxVector3 &, b32)
回転軸タイプの拘束作成(軸指定)
Definition GxDynamics.h:849
void setActive(b32 active)
アクティブ設定
Definition GxDynamics.cpp:1610
virtual void prepareCheck(void)
当たり判定チェック前準備
Definition GxDynamics.cpp:1582
virtual GX_FORCE_INLINE b32 createConstraintConeTwist(b32, GxDynamics::GxObject *, GxDynamics::GxObject *, const GxMatrixAffine &, const GxMatrixAffine &, const GxParamConeTwist &)
ConeTwistタイプの拘束作成
Definition GxDynamics.h:852
GxConstraint(void)
デフォルトコンストラクタ
Definition GxDynamics.cpp:1564
virtual void initialize(b32 active, TYPE type, b32 disableCollisions)
拘束情報の初期化
Definition GxDynamics.cpp:1635
virtual GX_FORCE_INLINE b32 createConstraintFixed(b32, GxDynamics::GxObject *, GxDynamics::GxObject *, const GxVector3 &, const GxVector3 &)
固定タイプの拘束作成
Definition GxDynamics.h:855
virtual GX_FORCE_INLINE void setParameterRevolute(const f32, const f32)
回転軸タイプのパラメタを設定
Definition GxDynamics.h:861
@ ACTIVE_FLAG_REQUEST_REGISTER
アクティブフラグON登録待ち
Definition GxDynamics.h:801
@ ACTIVE_FLAG_REGISTERED
登録されているかどうか
Definition GxDynamics.h:800
@ ACTIVE_FLAG_ACTIVE
オブジェクトがアクティブ状態かどうか
Definition GxDynamics.h:799
@ ACTIVE_FLAG_REQUEST_LINKED_BODIES
剛体同士をつなげるかどうか
Definition GxDynamics.h:803
@ ACTIVE_FLAG_REQUEST_BAN
アクティブフラグOFF登録待ち
Definition GxDynamics.h:802
@ ACTIVE_FLAG_REQUEST_DELETE
オブジェクト削除待ち
Definition GxDynamics.h:804
GX_FORCE_INLINE b32 getActiveFlag(u32 flag) const
アクティブフラグ取得
Definition GxDynamics.h:900
GxDynamics::GxWorld * _pRegisterWorld
登録先ワールド
Definition GxDynamics.h:925
GxFlag32Bit _activeFlag
アクティブ設定用フラグ
Definition GxDynamics.h:923
constexpr void setRegisterWorld(GxDynamics::GxWorld *pWorld)
登録したワールドのアドレスをセット
Definition GxDynamics.h:890
constexpr void reset(void)
状態リセット
Definition GxDynamics.h:875
~GxConstraint(void) override
デストラクタ
Definition GxDynamics.h:833
GxDynamics基本オブジェクトクラス
Definition GxDynamics.h:519
@ ACTIVE_FLAG_REQUEST_DELETE
オブジェクト削除待ち
Definition GxDynamics.h:539
@ ACTIVE_FLAG_REQUEST_REGISTER
アクティブフラグON登録待ち
Definition GxDynamics.h:537
@ ACTIVE_FLAG_REQUEST_BAN
アクティブフラグOFF登録待ち
Definition GxDynamics.h:538
@ ACTIVE_FLAG_REGISTERED
登録されているかどうか
Definition GxDynamics.h:536
@ ACTIVE_FLAG_ACTIVE
オブジェクトがアクティブ状態かどうか
Definition GxDynamics.h:535
b32 _isOwnsBtShape
自分が作成したBULLETのシェイプかどうかのフラグ
Definition GxDynamics.h:768
virtual GX_FORCE_INLINE void getLinearVelocity(GxVector3 &)
直線速度取得[m/sec]
Definition GxDynamics.h:643
RIGID_BODY_TYPE
剛体タイプ定義
Definition GxDynamics.h:544
RIGID_BODY_TYPE _type
剛体タイプ
Definition GxDynamics.h:765
u32 _checkFlag
メッシュとのチェックフラグ
Definition GxDynamics.h:773
GxQuaternion _rotateOffset
角度オフセット
Definition GxDynamics.h:772
virtual GX_FORCE_INLINE b32 createMultisphere(b32, GxMatrixAffine *, s32, const GxVector3 &, const GxQuaternion &, const GxShapeMultisphere &, const GxRigidBodyParam &, f32)
マルチ球の作成
Definition GxDynamics.h:602
constexpr GxCollision::COLLISION_SHAPE getShapeType(void) const
オブジェクト形状タイプの取得
Definition GxDynamics.h:689
virtual GX_FORCE_INLINE void setPosition(const GxVector3 &)
座標設定(速度等のパラメタが変更されるわけではないことに注意)
Definition GxDynamics.h:651
virtual GX_FORCE_INLINE void postUpdate(void)
更新後処理
Definition GxDynamics.h:581
constexpr void setRegisterWorld(GxDynamics::GxWorld *pWorld)
登録したワールドのアドレスを設定
Definition GxDynamics.h:682
constexpr GxShape * getShape(void) const
オブジェクト形状の取得
Definition GxDynamics.h:687
virtual b32 isNeedCheck(GxObject *pCollisionObject)
お互いの当たり判定が必要か判定
Definition GxDynamics.cpp:1449
virtual GX_FORCE_INLINE void setMatrix(const GxMatrixAffine &)
マトリクス設定
Definition GxDynamics.h:692
GxMatrixAffine * _pMatrix
更新するマトリクス
Definition GxDynamics.h:763
virtual GX_FORCE_INLINE b32 addCompoundBox(const GxVector3 &, const GxQuaternion &, const GxShapeBox &)
複合オブジェクトに追加:箱
Definition GxDynamics.h:619
virtual GX_FORCE_INLINE b32 endAddCompound(b32, const GxRigidBodyParam &)
複合オブジェクト追加終了
Definition GxDynamics.h:625
f32 _mass
重さ
Definition GxDynamics.h:770
GX_FORCE_INLINE void setActiveFlag(u32 flag, b32 value)
アクティブフラグ設定
Definition GxDynamics.h:714
virtual GX_FORCE_INLINE void getQuaternion(GxQuaternion &)
姿勢取得
Definition GxDynamics.h:658
virtual GX_FORCE_INLINE b32 addCompoundConvex(const GxVector3 &, const GxQuaternion &, const GxVector3 *, u32)
複合オブジェクトに追加:凸形状
Definition GxDynamics.h:623
virtual GX_FORCE_INLINE void preUpdate(void)
更新前処理
Definition GxDynamics.h:579
virtual GX_FORCE_INLINE b32 addCompoundCapsule(const GxVector3 &, const GxQuaternion &, const GxShapeCapsule &)
複合オブジェクトに追加:カプセル
Definition GxDynamics.h:621
GxDynamics::GxWorld * _pRegisterWorld
登録先ワールド
Definition GxDynamics.h:766
virtual GX_FORCE_INLINE b32 createBox(b32, GxMatrixAffine *, s32, const GxVector3 &, const GxQuaternion &, const GxShapeBox &, const GxRigidBodyParam &, f32)
箱の作成
Definition GxDynamics.h:596
virtual GX_FORCE_INLINE void applyForce(const GxVector3 &, const GxVector3 &)
力を加える(加速度に影響)
Definition GxDynamics.h:587
constexpr GxUnitBase * getUnit(void) const
ユニット取得
Definition GxDynamics.h:719
virtual GX_FORCE_INLINE void setDeactivationTime(f32)
Definition GxDynamics.h:669
s32 _jointIndex
貼り付ける関節番号
Definition GxDynamics.h:764
virtual GX_FORCE_INLINE GxMatrixAffine getMatrix(void)
マトリクス取得
Definition GxDynamics.h:694
virtual GX_FORCE_INLINE b32 createCylinder(b32, GxMatrixAffine *, s32, const GxVector3 &, const GxQuaternion &, const GxShapeCylinder &, const GxRigidBodyParam &, f32)
円柱の作成
Definition GxDynamics.h:599
constexpr u32 getCheckFlag(void) const
チェックフラグの取得
Definition GxDynamics.h:722
GX_FORCE_INLINE b32 isActive(void) const
アクティブ判定
Definition GxDynamics.h:707
virtual GX_FORCE_INLINE void applyImpulse(const GxVector3 &, const GxVector3 &)
衝撃力を加える(速度に影響)
Definition GxDynamics.h:590
constexpr void setUnit(GxUnitBase *pUnit)
ユニット設定
Definition GxDynamics.h:717
GxVector3 _offset
位置オフセット
Definition GxDynamics.h:771
constexpr f32 getMass(void) const
質量を取得
Definition GxDynamics.h:738
virtual GX_FORCE_INLINE b32 createCapsule(b32, GxMatrixAffine *, s32, const GxVector3 &, const GxQuaternion &, const GxShapeCapsule &, const GxRigidBodyParam &, f32)
カプセルの作成
Definition GxDynamics.h:605
virtual GX_FORCE_INLINE void initialize(b32, GxMatrixAffine *, const GxVector3 &, const GxQuaternion &)
オブジェクトの初期化
Definition GxDynamics.h:567
~GxObject(void) override
デストラクタ
Definition GxDynamics.cpp:1391
virtual GX_FORCE_INLINE void setAngularVelocity(const GxVector3 &)
回転速度設定[m/sec]
Definition GxDynamics.h:646
GX_FORCE_INLINE b32 getActiveFlag(u32 flag) const
アクティブフラグ取得
Definition GxDynamics.h:712
constexpr void setManagementClass(GxDynamics *pManagementClass)
管理クラスの設定
Definition GxDynamics.h:729
GxUnitBase * _pUnit
所有するユニット
Definition GxDynamics.h:767
virtual GX_FORCE_INLINE b32 createConvexShape(b32, GxMatrixAffine *, s32, const GxVector3 &, const GxQuaternion &, const GxVector3 *, u32, const GxRigidBodyParam &, f32)
凸形状の作成
Definition GxDynamics.h:608
virtual b32 isHitCheckFlagTrimesh(u32 triangleIndex, u32 targetFlag)
メッシュ形状の三角形単位で、チェックフラグから当たり判定が必要かを調べる
Definition GxDynamics.cpp:1491
GxShape * _pShape
基本形状
Definition GxDynamics.h:761
GX_FORCE_INLINE void setRotateOffset(const GxQuaternion &offset)
ラジアンの設定
Definition GxDynamics.h:743
constexpr GxDynamics::GxWorld * getRegisterWorld(void) const
登録したワールドのアドレスを取得
Definition GxDynamics.h:684
virtual GX_FORCE_INLINE void setFriction(f32)
摩擦係数の設定
Definition GxDynamics.h:676
virtual void setActive(b32 active)
アクティブ設定
Definition GxDynamics.cpp:1425
GxCollision::COLLISION_SHAPE _shapeType
形状分類
Definition GxDynamics.h:762
GxDynamics * _pManagementClass
自分を管理しているクラス
Definition GxDynamics.h:769
virtual GX_FORCE_INLINE void getPosition(GxVector3 &)
座標取得
Definition GxDynamics.h:653
virtual void prepareCheck(void)
当たり判定チェック前準備
Definition GxDynamics.cpp:1398
GX_FORCE_INLINE void setOffset(const GxVector3 &offset)
オフセットの設定
Definition GxDynamics.h:736
GxFlag32Bit _activeFlag
アクティブ設定用フラグ
Definition GxDynamics.h:760
constexpr u32 getActiveFlagAll(void) const
全アクティブフラグ取得
Definition GxDynamics.h:710
virtual GX_FORCE_INLINE void setRestitution(f32)
反発係数の設定(有効値:0.f~1.f)
Definition GxDynamics.h:679
virtual b32 isHitCheckFlag(u32 targetFlag)
チェックフラグからあたり判定が必要かを調べる
Definition GxDynamics.cpp:1479
virtual GX_FORCE_INLINE b32 createCompoundObject(GxMatrixAffine *, s32, const GxVector3 &, const GxQuaternion &, f32)
複合形状の作成
Definition GxDynamics.h:611
s16 _group
グループ
Definition GxDynamics.h:774
constexpr s32 getJointIndex(void) const
貼り付ける関節番号取得
Definition GxDynamics.h:702
virtual GX_FORCE_INLINE void setSleepingThresholds(f32, f32)
Definition GxDynamics.h:673
virtual GX_FORCE_INLINE void reset(void)
状態リセット
Definition GxDynamics.h:584
GX_FORCE_INLINE const GxQuaternion & getRotateOffset(void) const
ラジアンの取得
Definition GxDynamics.h:741
virtual GX_FORCE_INLINE b32 addCompoundSphere(const GxVector3 &, const GxShapeSphere &)
複合オブジェクトに追加:球
Definition GxDynamics.h:617
virtual GX_FORCE_INLINE b32 createMesh(b32, GxMatrixAffine *, const GxVector3 &, const GxQuaternion &, const GxShapeTrimesh &, f32=0.5f, b32=true, GxVector3 *=nullptr, GxVector3 *=nullptr, f32=DYNAMICS_COLLISION_MARGIN)
背景メッシュの作成
Definition GxDynamics.h:614
virtual GX_FORCE_INLINE b32 createSphere(b32, GxMatrixAffine *, s32, const GxVector3 &, const GxQuaternion &, const GxShapeSphere &, const GxRigidBodyParam &, f32)
球の作成
Definition GxDynamics.h:593
virtual GX_FORCE_INLINE void getAngularVelocity(GxVector3 &)
回転速度取得[m/sec]
Definition GxDynamics.h:648
virtual GX_FORCE_INLINE void setLinearVelocity(const GxVector3 &)
直線速度設定[m/sec]
Definition GxDynamics.h:641
constexpr void setCheckFlag(u32 flag)
チェックフラグの設定
Definition GxDynamics.h:724
constexpr RIGID_BODY_TYPE getType(void) const
剛体の種類を取得
Definition GxDynamics.h:726
virtual GX_FORCE_INLINE void setQuaternion(const GxQuaternion &)
姿勢設定(速度等のパラメタが変更されるわけではないことに注意)
Definition GxDynamics.h:656
constexpr GxDynamics * getManagementClass(void) const
管理クラスの取得
Definition GxDynamics.h:731
GX_FORCE_INLINE const GxVector3 & getOffset(void) const
オフセットの取得
Definition GxDynamics.h:734
virtual GX_FORCE_INLINE void setDampingRatio(f32, f32)
Definition GxDynamics.h:664
GxObject(void)
デフォルトコンストラクタ
Definition GxDynamics.cpp:1370
GxDynamics 基本ワールドクラス
Definition GxDynamics.h:272
GX_FORCE_INLINE void getPropertyList(void *const pValue, u32 index)
再生クラスアドレスの取得
Definition GxDynamics.h:479
virtual void preUpdate(void)
更新前処理
Definition GxDynamics.cpp:949
virtual void postUpdate(void)
更新後処理
Definition GxDynamics.cpp:962
constexpr void setPropertyList(const void *const, u32)
再生クラスアドレスの設定
Definition GxDynamics.h:481
virtual GX_FORCE_INLINE void setGravity(const f32, const f32, const f32)
重力を設定(ワールドに登録されている剛体全てに設定)
Definition GxDynamics.h:368
virtual GX_FORCE_INLINE void banObject(GxDynamics::GxObject *)
ワールドからオブジェクトを登録解除
Definition GxDynamics.h:344
b32 setListClassCount(u32 count)
リスト個数設定
Definition GxDynamics.cpp:1218
GxDynamics::GxObject * getMesh(u32 index)
メッシュアドレスの取得
Definition GxDynamics.cpp:1162
virtual void setGravity(const GxVector3 &gravity=GxDynamics::GxWorld::DYNAMICS_GRAVITY)
重力を設定(ワールドに登録されている剛体全てに設定)
Definition GxDynamics.cpp:1037
void setGroupCollision(u16 group1, u16 group2, b32 isColide)
グループの衝突判定を行うか設定
Definition GxDynamics.cpp:1281
constexpr u32 getListClassCount(void) const
リスト個数取得
Definition GxDynamics.h:439
~GxWorld(void) override
デストラクタ
Definition GxDynamics.cpp:850
b32 setMeshCount(u32 count)
メッシュ登録個数設定
Definition GxDynamics.cpp:1061
void freeMesh(void)
メッシュリストの解放
Definition GxDynamics.cpp:1090
u32 _groupCollide[32]
ワールドに設定された、グループ同士の衝突判定の有無を保持する。
Definition GxDynamics.h:510
GX_FORCE_INLINE void setEnableMaxTimeStep(b32 enable)
ワールド更新間隔設定を反映可能にする(デフォルト無効)
Definition GxDynamics.h:391
u32 getActiveMeshCount(void)
アクティブな個数の取得
Definition GxDynamics.cpp:1179
virtual b32 checkRayClosestVsWorld(GxDynamics::GxRayResult *, const GxVector3 &, const GxVector3 &, GxConditionInformation *=nullptr)
Definition GxDynamics.h:433
GX_FORCE_INLINE b32 isActive(void) const
アクティブ判定
Definition GxDynamics.h:360
u32 getFreeMeshIndex(void)
空いているメッシュインデックスを取得
Definition GxDynamics.cpp:1198
constexpr u32 getMeshCount(void) const
メッシュオブジェクト個数の取得
Definition GxDynamics.h:412
void addClass(u32 threadIndex, GxDynamics *pDynamics)
クラス登録
Definition GxDynamics.cpp:980
b32 _enableMaxTimeStep
外部からシミュレーション設定を有効にする
Definition GxDynamics.h:507
GX_FORCE_INLINE void setActive(b32 active)
アクティブ設定
Definition GxDynamics.h:358
virtual void check(void)
Definition GxDynamics.cpp:928
virtual void prepareCheck(void)
当たり判定チェック前準備
Definition GxDynamics.cpp:900
GxWorld(void)
デフォルトコンストラクタ
Definition GxDynamics.cpp:830
b32 addMesh(u32 index, GxDynamics::GxObject *pMesh)
メッシュをリストに追加
Definition GxDynamics.cpp:1103
virtual GX_FORCE_INLINE void registerConstraint(GxDynamics::GxConstraint *, b32)
ワールドに拘束クラスを登録
Definition GxDynamics.h:347
u32 _maxIteration
最大繰り返し回数
Definition GxDynamics.h:509
void detachClass(GxDynamics *pDynamics)
クラス削除
Definition GxDynamics.cpp:1000
virtual GX_FORCE_INLINE void detachObjectFromWorld(GxObject *)
ワールドからオブジェクトをデタッチ
Definition GxDynamics.h:394
virtual void update(void)
更新処理
Definition GxDynamics.h:335
virtual b32 checkRayClosestVsSingle(GxDynamics::GxRayResult *, GxObject *, const GxVector3 &, const GxVector3 &, GxConditionInformation *=nullptr)
指定オブジェクトとのレイチェック
Definition GxDynamics.h:436
virtual GX_FORCE_INLINE void registerObject(GxDynamics::GxObject *)
ワールドにオブジェクトを登録
Definition GxDynamics.h:342
f32 _timeStep
タイムステップの最大時間
Definition GxDynamics.h:508
GxArrayClassBase * getListClass(u32 index)
リストの取得
Definition GxDynamics.cpp:1246
void setMaxTimeStep(f32 timeStep=1.0f/60.f, u32 maxIteration=8)
Definition GxDynamics.cpp:1047
GX_FORCE_INLINE void setPropListClassCount(u32 count)
リスト個数設定
Definition GxDynamics.h:484
virtual GX_FORCE_INLINE void reset(void)
ワールドの状態をリセットする
Definition GxDynamics.h:363
static const GxVector3 DYNAMICS_GRAVITY
重力
Definition GxDynamics.h:286
b32 eraseMesh(GxDynamics::GxObject *pMesh)
メッシュをリストから削除(アドレス指定版)
Definition GxDynamics.cpp:1130
virtual GX_FORCE_INLINE void banConstraint(GxDynamics::GxConstraint *)
ワールドから拘束クラスを登録解除
Definition GxDynamics.h:349
virtual b32 alloc(u32 meshCount, const GxVector3 &worldAabbMin, const GxVector3 &worldAabbMax, u16 maxHandles, u32 stackAllocatorSize=DYNAMICS_DEFAULT_STACK_ALLOCATOR_SIZE, u32 maxPersistentManifoldPoolSize=DYNAMICS_DEFAULT_MAX_PERSISTENT_MANIFOLD_POOL_SIZE, u32 maxCollisionAlgorithmPoolSize=DYNAMICS_DEFAULT_MAX_COLLISION_ALGORITHM_POOL_SIZE)
ワールドのメモリ確保
Definition GxDynamics.cpp:880
virtual void free(void)
ワールドのメモリ解放
Definition GxDynamics.cpp:888
GxArrayClassBase _dynamicsList
GxDynamicsクラスを記憶するリスト
Definition GxDynamics.h:506
物理演算クラス
Definition GxDynamics.h:27
GxUnitBase * _pUnit
使用するユニット
Definition GxDynamics.h:263
GX_FORCE_INLINE b32 isActive(void) const
アクティブ判定
Definition GxDynamics.h:162
static constexpr u32 FLAG_ALL
全フラグ定数
Definition GxDynamics.h:53
void(GxClassBaseRoot::*) DYNAMICS_CALLBACK(void)
後処理用コールバック
Definition GxDynamics.h:97
constexpr GxWorld * getWorld(void) const
登録ワールドの取得
Definition GxDynamics.h:217
GxWorld * _pRegisterWorld
オブジェクトを登録するワールド
Definition GxDynamics.h:262
GX_FORCE_INLINE void setCallback(DYNAMICS_CALLBACK pCallback)
後処理用コールバック関数の設定
Definition GxDynamics.h:225
b32 _active
クラスを使用できるかフラグ
Definition GxDynamics.h:257
GxArrayClassBase _listConstraint
拘束クラスのリスト
Definition GxDynamics.h:260
GxArrayClassBase _listObject
オブジェクトのリスト
Definition GxDynamics.h:259
virtual GX_FORCE_INLINE GxObject * allocObject(void)
オブジェクトのメモリ確保
Definition GxDynamics.h:120
DYNAMICS_CALLBACK _pCallback
後処理用コールバック
Definition GxDynamics.h:258
constexpr void setWorldNull(void)
登録ワールドの削除
Definition GxDynamics.h:221
static constexpr u32 VALUE_16
16
Definition GxMath.h:123
箱形状クラス
Definition GxShape.h:333
カプセル形状クラス
Definition GxShape.h:707
円柱形状クラス
Definition GxShape.h:634
複合形状クラス
Definition GxDynamics.h:1100
GX_FORCE_INLINE GxArray * getListDesc(void)
詳細リストを取得
Definition GxDynamics.h:1130
~GxShapeDynamicsCompound(void) override
デストラクタ
Definition GxDynamics.h:1119
GxShapeDynamicsCompound(void)
デフォルトコンストラクタ
Definition GxDynamics.h:1117
GxArray _listDesc
詳細リスト
Definition GxDynamics.h:1138
const GxVector3 getNormal(const GxVector3 &) const override
表面位置から法線を取得
Definition GxDynamics.h:1128
形状基礎クラス
Definition GxShape.h:45
マルチ球形状クラス
Definition GxShape.h:776
球形状クラス
Definition GxShape.h:240
三角メッシュ形状クラス
Definition GxShape.h:912
ユニット基礎クラス
Definition GxUnitBase.h:45
static const GxColor WHITE
白
Definition GxColor.h:37
ConeTwist設定パラメタ構造体
Definition GxDynamics.h:57
f32 _swingLimit1
振れ角度限界:mat.getRow(1)方向
Definition GxDynamics.h:89
~GxParamConeTwist(void)
デストラクタ
Definition GxDynamics.h:80
b32 _disableCollision
2オブジェクト間のコリジョンを無視するならtrue
Definition GxDynamics.h:91
f32 _swingLimit2
振れ角度限界:mat.getRow(2)方向
Definition GxDynamics.h:90
GxParamConeTwist()
デフォルトコンストラクタ
Definition GxDynamics.h:73
f32 _twistLimit
ねじり角度限界:mat.getRow(0)方向
Definition GxDynamics.h:88
レイ判定情報
Definition GxDynamics.h:1042
GxVector3 _normal
交差面法線
Definition GxDynamics.h:1079
u32 _checkFlag
チェックフラグ?
Definition GxDynamics.h:1082
f32 _fraction
交差位置の割合
Definition GxDynamics.h:1090
GxVector3 _position
交差位置
Definition GxDynamics.h:1078
GxRayResult(void)
コンストラクタ
Definition GxDynamics.h:1049
b32 _hasHit
ヒットしたかどうか
Definition GxDynamics.h:1091
s32 _triangleIndex
交差したメッシュのインデックス
Definition GxDynamics.h:1081
virtual ~GxRayResult(void)
デストラクタ
Definition GxDynamics.h:1057
GxDynamics::GxObject * _pObject
交差オブジェクト
Definition GxDynamics.h:1080
const GxRayResult & operator=(const GxRayResult &rayResult)
代入
Definition GxDynamics.h:1060
剛体パラメタ構造体
Definition GxDynamics.h:944
f32 _linearDamping
直線運動減衰率
Definition GxDynamics.h:986
f32 _angularDamping
回転運動減衰率
Definition GxDynamics.h:987
GxObject::RIGID_BODY_TYPE _type
剛体タイプ
Definition GxDynamics.h:973
GxRigidBodyParam(void)
デフォルトコンストラクタ
Definition GxDynamics.h:954
GxVector3 _inertiaScale
慣性モーメントのスケール
Definition GxDynamics.h:983
f32 _mass
質量:0.fにすると、動かないオブジェクトになります。
Definition GxDynamics.h:969
f32 _friction
摩擦係数
Definition GxDynamics.h:971
constexpr u32 getFlag(void) const
フラグ直取得
Definition GxStruct.h:1273
ビット指定型フラグ
Definition GxStruct.h:1338
GX_FORCE_INLINE b32 isFlag(u32 flag) const
フラグ判定
Definition GxStruct.h:1354
GX_FORCE_INLINE void setFlag(u32 flag, b32 enable)
フラグ設定
Definition GxStruct.h:1356
3×3行列(行優先)
Definition GxMatrix.h:169
アフィン変換行列(行優先)
Definition GxMatrix.h:330
クォータニオン
Definition GxQuaternion.h:19
3次元ベクトル
Definition GxVector.h:245
static const GxVector3 ZERO
(0, 0, 0)
Definition GxVector.h:256
32bitブーリアン
Definition GxDefine.h:173