OROCHI
 
Loading...
Searching...
No Matches
GxSysDynamicsPhysX.h
Go to the documentation of this file.
1//===========================================================================
11//===========================================================================
12#pragma once
13
14#if PLATFORM_PHYSX_SUPPORT
15
17class UserAllocator;
18
19//===========================================================================
21//===========================================================================
22class GxSysDynamicsPhysX : public GxSysDynamics
23{
24 //-------------------------------------------------------------
26 //-------------------------------------------------------------
28public:
29 // RTTI宣言
30 GX_RTTI_ABSTRACT_CLASS(GxSysDynamicsPhysX, GxSysDynamics);
31 // ClassBase継承クラス用禁止宣言
32 GX_PROHIBIT_CLASS_BASE(GxSysDynamicsPhysX);
33
35 //-----------------------------------------------------------
37 //-----------------------------------------------------------
39
41 GxSysDynamicsPhysX(void);
43 ~GxSysDynamicsPhysX(void) override {}
44
46 b32 initialize(const GxClassBase* pInitialInformation) override;
48 void terminate(void) override;
49
51 //-----------------------------------------------------------
53 //-----------------------------------------------------------
55
57 virtual b32 reCreateAllWorld(void);
58
59#if GX_DEVELOP
61 void setAllocatorDevelop(b32 usesDevelop) override;
62#endif // GX_DEVELOP
63private:
65 void initializeForPhysX(void);
67 void terminateForPhysX(void);
68
70 //-----------------------------------------------------------
72 //-----------------------------------------------------------
74public:
76 constexpr PxPhysics* getPhysicsSdk( void ) const { return _pPhysicsSdk; }
78 constexpr PxDefaultCpuDispatcher* getCpuDispather( void ) const { return _pCpuDispatcher; }
79
81 //-----------------------------------------------------------
83 //-----------------------------------------------------------
85private:
86 PxPhysics* _pPhysicsSdk;
87 PxFoundation* _pFoundation;
88 UserAllocator* _pAllocator;
89 PxDefaultCpuDispatcher* _pCpuDispatcher;
90
92};
93
94//===========================================================================
96//===========================================================================
97class GxDefaultErrorCallback : public PxErrorCallback
98{
99 //-----------------------------------------------------------
101 //-----------------------------------------------------------
103public:
105 GxDefaultErrorCallback(void){}
107 ~GxDefaultErrorCallback(void){}
108
110 //-----------------------------------------------------------
112 //-----------------------------------------------------------
114
116 virtual void reportError(PxErrorCode::Enum code, GX_CSTR message, GX_CSTR file, s32 line);
117
119};
120
121//-------------------------------------------------------------
122// アクセスインターフェイス
123//-------------------------------------------------------------
124GX_FORCE_INLINE GxSysDynamicsPhysX* getGxSysDynamicsPhysX(void){ return gx_cast<GxSysDynamicsPhysX*>( getGxSysDynamics() ); }
125
126GX_PHYSICS_NAMESPACE_END()
127#endif //PLATFORM_PHYSX_SUPPORT
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
オブジェクト基底クラス
Definition GxBase.h:88
物理演算システムクラス
Definition GxSysDynamics.h:27
32bitブーリアン
Definition GxDefine.h:173