OROCHI
 
Loading...
Searching...
No Matches
GxResCollisionMesh.h
Go to the documentation of this file.
1//===========================================================================
10//===========================================================================
11#pragma once
12
15//===========================================================================
17//===========================================================================
19{
20 //-------------------------------------------------------------
22 //-------------------------------------------------------------
24public:
25 // RTTI定義
27 // ClassBaseReference継承クラス用禁止宣言
29
30
49
51 //-----------------------------------------------------------
53 //-----------------------------------------------------------
55public:
58
60 void cleanup(void) override;
61
63 //-------------------------------------------------------------
65 //-------------------------------------------------------------
67public:
69 b32 load(GxStream& stream, u32 size);
70#if GX_DEVELOP
72 b32 save(GxStream& stream);
73#endif // GX_DEVELOP
74
75private:
77 void createHitFlagsBuffer(u32* pHitFlagsBuffer, s32* pMaterials);
78
80 //-------------------------------------------------------------
82 //-------------------------------------------------------------
84public:
86 constexpr GxVector3* getVertexBuffer(void) const { return _pVertex; }
88 constexpr u32* getIndexBuffer(void) const { return _pIndex; }
90 constexpr u32* getHitFlagBuffer(void) const { return _pHitFlags; }
92 constexpr s32* getMaterialBuffer(void) const { return _pMaterials; }
94 constexpr btBvhTriangleMeshShape* getBtTriangleMeshShape(void) const { return _pBtTriangleMeshShape; }
96 constexpr u32 getVertexCount(void) const { return _vertexCount; }
98 constexpr u32 getIndexCount(void) const { return _indexCount; }
100 constexpr u32 getTriangleCount(void) const { return _triangleCount; }
101
103 constexpr u32 getMaterialCount(void) const { return _materialCount; }
105 constexpr u32* getMaterialTriangleCount(void) const { return _pMaterialTriangleCount; }
106
107#if GX_DEVELOP
109 constexpr GX_ENUM* getMaterialEnumArray(void) const { return _pMaterialEnumArray; }
111 GX_FORCE_INLINE const GX_ENUM* getMaterialEnumArrayIndex(u32 index) const { return &_pMaterialEnumArray[index]; }
113 const GX_ENUM* getMaterialEnumArray(GX_CSTR materialName) const;
114#endif // GX_DEVELOP
115
117 //-------------------------------------------------------------
119 //-------------------------------------------------------------
121protected:
122 void* _pBuffer;
123 u32 _size;
124
127 u32* _pIndex;
132 btTriangleIndexVertexArray* _pBtTriangleIndexVertexArray;
133 btBvhTriangleMeshShape* _pBtTriangleMeshShape;
134
137 btVector3* _pBtAabbMin;
138 btVector3* _pBtAabbMax;
139
144
145#if GX_DEVELOP
146 u32 _materialNameSizeAll;
147 GX_ENUM* _pMaterialEnumArray;
148#endif // GX_DEVELOP
149
151
153};
154
155GX_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
ヒットフラグ設定リソースクラス
Definition GxResBackgroundCollisionSet.h:19
リソース基底クラス
Definition GxResBase.h:23
メッシュコリジョンリソースクラス
Definition GxResCollisionMesh.h:19
u32 _size
バイナリデータサイズ
Definition GxResCollisionMesh.h:123
constexpr u32 getIndexCount(void) const
インデックス個数取得
Definition GxResCollisionMesh.h:98
u32 _materialCount
マテリアル数
Definition GxResCollisionMesh.h:140
u32 _triangleCount
トライアングル個数
Definition GxResCollisionMesh.h:131
constexpr btBvhTriangleMeshShape * getBtTriangleMeshShape(void) const
BULLETメッシュシェイプ取得
Definition GxResCollisionMesh.h:94
btVector3 * _pBtAabbMax
AABBボックス最大値
Definition GxResCollisionMesh.h:138
GX_STR _materialNameArray
マテリアル名バッファ
Definition GxResCollisionMesh.h:142
constexpr u32 getTriangleCount(void) const
トライアングル個数取得
Definition GxResCollisionMesh.h:100
s32 * _pMaterials
素材情報バッファ
Definition GxResCollisionMesh.h:130
btTriangleIndexVertexArray * _pBtTriangleIndexVertexArray
BULLETインデックスバッファ
Definition GxResCollisionMesh.h:132
constexpr s32 * getMaterialBuffer(void) const
素材情報バッファ取得
Definition GxResCollisionMesh.h:92
u32 * _pHitFlags
当たり属性バッファ
Definition GxResCollisionMesh.h:129
u32 * _pIndex
インデックスバッファ
Definition GxResCollisionMesh.h:127
constexpr u32 getVertexCount(void) const
頂点データ個数取得
Definition GxResCollisionMesh.h:96
GxVector3 * _pVertex
頂点データバッファ
Definition GxResCollisionMesh.h:125
constexpr u32 * getHitFlagBuffer(void) const
当たり属性バッファ取得
Definition GxResCollisionMesh.h:90
void * _pBuffer
バイナリデータバッファ
Definition GxResCollisionMesh.h:122
u32 _vertexCount
頂点データ個数
Definition GxResCollisionMesh.h:126
GxResBackgroundCollisionSet * _pHitflag
ヒットフラグリソース
Definition GxResCollisionMesh.h:150
void * _pBtOptimizedBvhBuffer
btOptimizedBvhバッファ
Definition GxResCollisionMesh.h:135
u32 _indexCount
インデックス個数
Definition GxResCollisionMesh.h:128
u32 _btOptimizedBvhSize
btOptimizedBvhサイズ
Definition GxResCollisionMesh.h:136
u32 * _pMaterialTriangleCount
マテリアルの三角形数バッファ
Definition GxResCollisionMesh.h:141
constexpr GxVector3 * getVertexBuffer(void) const
頂点データバッファ取得
Definition GxResCollisionMesh.h:86
btBvhTriangleMeshShape * _pBtTriangleMeshShape
BULLETメッシュシェイプ
Definition GxResCollisionMesh.h:133
constexpr u32 * getMaterialTriangleCount(void) const
各マテリアルの三角形数の取得
Definition GxResCollisionMesh.h:105
constexpr u32 getMaterialCount(void) const
マテリアル数の取得
Definition GxResCollisionMesh.h:103
u32 * _pMaterialNameSizeArray
マテリアル名サイズバッファ
Definition GxResCollisionMesh.h:143
constexpr u32 * getIndexBuffer(void) const
インデックスバッファ取得
Definition GxResCollisionMesh.h:88
btVector3 * _pBtAabbMin
AABBボックス最小値
Definition GxResCollisionMesh.h:137
@ MESH
メッシュ
ストリーム基礎クラス
Definition GxStream.h:20
GUI用
Definition GxDefine.h:194
ヘッダー定義
Definition GxResCollisionMesh.h:32
u32 _btOptimizedBvhOffset
btOptimizedBvh情報へのファイル先頭バイトオフセット
Definition GxResCollisionMesh.h:37
u32 _vertexOffset
頂点データテーブルへのファイル先頭バイトオフセット
Definition GxResCollisionMesh.h:33
u32 _btAabbMinOffset
AABBボックス最小値へのファイル先頭バイトオフセット
Definition GxResCollisionMesh.h:38
u32 _materialNameArrayOffset
マテリアル名へのファイル先頭バイトオフセット
Definition GxResCollisionMesh.h:46
u32 _materialTriangleCountOffset
マテリアルの三角形数へのファイル先頭バイトオフセット
Definition GxResCollisionMesh.h:44
u32 _materialNameSizeArrayOffset
マテリアル名サイズへのファイル先頭バイトオフセット
Definition GxResCollisionMesh.h:47
u32 _materialCount
マテリアル数
Definition GxResCollisionMesh.h:45
u32 _indexCount
インデックス個数
Definition GxResCollisionMesh.h:41
u32 _indexOffset
インデックステーブルへのファイル先頭バイトオフセット
Definition GxResCollisionMesh.h:34
u32 _btAabbMaxOffset
AABBボックス最大値へのファイル先頭バイトオフセット
Definition GxResCollisionMesh.h:39
u32 _btOptimizedBvhSize
btOptimizedBvh情報のサイズ
Definition GxResCollisionMesh.h:42
u32 _vertexCount
頂点個数
Definition GxResCollisionMesh.h:40
u32 _hitFlagOffset
当たり属性テーブルへのファイル先頭バイトオフセット
Definition GxResCollisionMesh.h:35
u32 _materialOffset
素材情報テーブルへのファイル先頭バイトオフセット
Definition GxResCollisionMesh.h:36
3次元ベクトル
Definition GxVector.h:245
32bitブーリアン
Definition GxDefine.h:173