OROCHI
 
Loading...
Searching...
No Matches
GxUnitBackgroundBase.h
Go to the documentation of this file.
1//===========================================================================
11//===========================================================================
12#pragma once
13
15
16//===========================================================================
18//===========================================================================
20{
21 //-------------------------------------------------------------
23 //-------------------------------------------------------------
25public:
26 // RTTI定義
27 GX_RTTI_CLASS_NAME_ICON(GxUnitBackgroundBase, GxUnitModel, "背景基礎", GxRtti::ICON_TYPE::LEVEL)
28 // ClassBaseReference継承クラス用禁止宣言
30
31
33 {
36 const u32* _pIndex;
38 const u32* _pCheckFlag;
39 const s32* _pMaterial;
40 };
41
43 //-----------------------------------------------------------
45 //-----------------------------------------------------------
47public:
51 void cleanup(void) override;
52
54 //-------------------------------------------------------------
56 //-------------------------------------------------------------
58protected:
60 void asyncUpdate(void) override;
61#if GX_DEVELOP
63 void developRender(void) override;
64#endif // GX_DEVELOP
65
66public:
68 b32 createBackgroundHit (u32 index, GxCollision::GxWorld* pWorld, GxCollision::COLLISION_CALLBACK pCallback, const GxTrimeshConstractInformation& trimeshInformation, btBvhTriangleMeshShape* pBtBvhTriangleMeshShape = nullptr);
70 b32 createDynamicsHit (u32 index, const GxTrimeshConstractInformation& trimeshInformation);
72 b32 createBackgroundHit (u32 index, GxCollision::GxWorld* pWorld, GxCollision::COLLISION_CALLBACK pCallback, GxResCollisionMesh* pResource);
74 b32 createDynamicsHit (u32 index, GxResCollisionMesh* pResource);
76 void clearBackgroundHit (void);
78 void clearDynamicsHit (void);
80 virtual void dynamicsCallback (void);
81
83 //-------------------------------------------------------------
85 //-------------------------------------------------------------
87
89 GX_FORCE_INLINE void setCreateDynamicsMesh (b32 isCreateDynamicsFromCollsionMesh){ _isCreateDynamicsFromCollsionMesh = isCreateDynamicsFromCollsionMesh; }
91 virtual void setResCollisionMesh (GxResCollisionMesh* pResCollisionMesh);
93 virtual void setResDynamicsMesh (GxResCollisionMesh* pResDynamicsMesh);
95 constexpr void setDynamicsHitMargin (f32 margin){ _dynamicsHitMargin = margin; }
97 constexpr void setDynamicsHitFriction(f32 friction){ _dynamicsHitFriction = friction; }
99 constexpr GxBackgroundHit* getBackgroundHit(void) const { return _pBackgroundHit; }
101 constexpr GxDynamics* getDynamicsHit(void) const { return _pDynamicsHit; }
103 constexpr GxResCollisionMesh* getResCollisionMesh(void) const { return _pCollisionMesh; }
105 constexpr GxResCollisionMesh* getResDynamicsMesh(void) const { return _pDynamicsMesh; }
107 constexpr f32 getDynamicsHitMargin(void) const { return _dynamicsHitMargin; }
109 constexpr f32 getDynamicsHitFriction(void) const { return _dynamicsHitFriction; }
111 GX_FORCE_INLINE b32 isCreateDynamicsMesh(void) const { return _isCreateDynamicsFromCollsionMesh; }
112
114 constexpr void getPropertyCollisionMesh(void* const pValue){ *static_cast<GxResCollisionMesh**>(pValue) = _pCollisionMesh; }
116 constexpr void getPropertyDynamicsMesh(void* const pValue){ *static_cast<GxResCollisionMesh**>(pValue) = _pDynamicsMesh; }
118 void setPropertyCollisionMesh (const void* const pValue);
120 void setPropertyDynamicsMesh (const void* const pValue);
121
123 //-------------------------------------------------------------
125 //-------------------------------------------------------------
127private:
128 GxBackgroundHit* _pBackgroundHit;
129 GxDynamics* _pDynamicsHit;
130 btTriangleIndexVertexArray* _pIndexVertexArrays;
131 GxResCollisionMesh* _pCollisionMesh;
132 GxResCollisionMesh* _pDynamicsMesh;
133 b32 _isCreateDynamicsFromCollsionMesh;
134 f32 _dynamicsHitMargin;
135 f32 _dynamicsHitFriction;
136#if GX_DEVELOP
137 GxColor _developRenderColorForBackGround;
138 GxColor _developRenderColorForDynamics;
139 PRIMITIVE_FILL_MODE _developRenderMode;
140#endif // GX_DEVELOP
141
143};
144
145GX_PHYSICS_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
#define GX_PHYSICS_NAMESPACE_BEGIN()
ネームスペースマクロ
Definition GxPhysics.h:28
PRIMITIVE_FILL_MODE
塗りつぶしモード
Definition GxPrimitive.h:31
背景あたりクラス
Definition GxBackgroundHit.h:23
Collision基本ワールドクラス
Definition GxCollision.h:236
void(GxClassBaseRoot::*) COLLISION_CALLBACK(void)
コールバック定義
Definition GxCollision.h:65
物理演算クラス
Definition GxDynamics.h:27
メッシュコリジョンリソースクラス
Definition GxResCollisionMesh.h:19
@ LEVEL
レベル
背景ユニット基底クラス
Definition GxUnitBackgroundBase.h:20
constexpr void getPropertyCollisionMesh(void *const pValue)
背景当たりリソースプロパティの取得
Definition GxUnitBackgroundBase.h:114
GX_FORCE_INLINE b32 isCreateDynamicsMesh(void) const
背景当たりリソースを基に物理用メッシュを作成するかどうか取得
Definition GxUnitBackgroundBase.h:111
GX_FORCE_INLINE void setCreateDynamicsMesh(b32 isCreateDynamicsFromCollsionMesh)
背景当たりリソースを基に物理用メッシュを作成するかどうか設定
Definition GxUnitBackgroundBase.h:89
constexpr GxBackgroundHit * getBackgroundHit(void) const
背景当たりインスタンス取得
Definition GxUnitBackgroundBase.h:99
constexpr f32 getDynamicsHitMargin(void) const
物理当たりのマージン取得
Definition GxUnitBackgroundBase.h:107
constexpr void getPropertyDynamicsMesh(void *const pValue)
物理当たりリソースプロパティの取得
Definition GxUnitBackgroundBase.h:116
constexpr GxResCollisionMesh * getResDynamicsMesh(void) const
物理当たりリソース取得
Definition GxUnitBackgroundBase.h:105
constexpr void setDynamicsHitFriction(f32 friction)
物理当たりの摩擦係数設定
Definition GxUnitBackgroundBase.h:97
constexpr f32 getDynamicsHitFriction(void) const
物理当たりの摩擦係数取得
Definition GxUnitBackgroundBase.h:109
constexpr GxDynamics * getDynamicsHit(void) const
物理当たりインスタンス取得
Definition GxUnitBackgroundBase.h:101
constexpr void setDynamicsHitMargin(f32 margin)
物理当たりのマージン設定
Definition GxUnitBackgroundBase.h:95
constexpr GxResCollisionMesh * getResCollisionMesh(void) const
背景当たりリソース取得
Definition GxUnitBackgroundBase.h:103
モデルクラス
Definition GxUnitModel.h:19
Definition GxColor.h:21
三角形メッシュ生成時情報
Definition GxUnitBackgroundBase.h:33
const u32 * _pIndex
インデックス情報ポインタ
Definition GxUnitBackgroundBase.h:36
const s32 * _pMaterial
メッシュマテリアル情報
Definition GxUnitBackgroundBase.h:39
const GxVector3 * _pVertex
頂点情報ポインタ
Definition GxUnitBackgroundBase.h:34
u32 _indexCount
インデックス情報個数
Definition GxUnitBackgroundBase.h:37
u32 _vertexCount
頂点情報個数
Definition GxUnitBackgroundBase.h:35
const u32 * _pCheckFlag
当たりチェックフラグ情報
Definition GxUnitBackgroundBase.h:38
3次元ベクトル
Definition GxVector.h:245
32bitブーリアン
Definition GxDefine.h:173