OROCHI
 
Loading...
Searching...
No Matches
GxToolCollisionViewer.h
Go to the documentation of this file.
1//===========================================================================
10//===========================================================================
11#pragma once
12
13#if GX_DEVELOP
14
16
17//===========================================================================
19//===========================================================================
20class GxToolCollisionViewer : public GxToolBase
21{
22 //-----------------------------------------------------------
24 //-----------------------------------------------------------
26public:
27 // RTTI宣言
28 GX_RTTI_CLASS_NAME_ICON( GxToolCollisionViewer, GxToolBase, "コリジョン管理", GxRtti::ICON_TYPE::PHYSICS )
29 // ClassBaseReference継承クラス用禁止宣言
30 GX_PROHIBIT_CLASS_BASE_REFERENCE(GxToolCollisionViewer)
31
32protected:
33 class GxGuiFormCollisionList;
34 class GxGuiFormWorldInformation;
35 class GxToolCollisionProperty;
36 class GxToolObjectProperty;
37 class GxGuiPropertyTablePhysics;
38
40 //-----------------------------------------------------------
42 //-----------------------------------------------------------
44public:
46 GxToolCollisionViewer(void);
47
49 b32 initialize(void) override;
50
52 //-----------------------------------------------------------
54 //-----------------------------------------------------------
56protected:
58 constexpr GxCollision::GxWorld* getSelectedWorld( void ) const { return _pSelectedWorld; }
60 constexpr GxCollision* getSelectedCollision( void ) const { return _pSelectedCollision; }
62 constexpr GxCollision::GxObject* getSelectedObject( void ) const { return _pSelectedObject; }
64 constexpr void setSelectedWorld( GxCollision::GxWorld* pWorld ) { _pSelectedWorld = pWorld; }
66 constexpr void setSelectedCollision( GxCollision* pCollision ) { _pSelectedCollision = pCollision; }
68 constexpr void setSelectedObject( GxCollision::GxObject* pObject ) { _pSelectedObject = pObject; }
69
71 //-----------------------------------------------------------
73 //-----------------------------------------------------------
75private:
76 GxCollision::GxWorld* _pSelectedWorld;
77 GxCollision* _pSelectedCollision;
78 GxCollision::GxObject* _pSelectedObject;
79
81};
82
83//===========================================================================
85//===========================================================================
86class GxToolCollisionViewer::GxGuiFormCollisionList : public GxGuiForm
87{
88 //-----------------------------------------------------------
90 //-----------------------------------------------------------
92public:
93 // RTTI宣言
94 GX_RTTI_CLASS( GxGuiFormCollisionList, GxGuiForm )
95 // ClassBaseReference継承クラス用禁止宣言
96 GX_PROHIBIT_CLASS_BASE_REFERENCE(GxGuiFormCollisionList)
97
98
99 enum
100 {
101 COLUMN_WORLD = 0,
102 COLUMN_COLLISION = 1,
103 COLUMN_OBJECT = 2,
104 };
105
107 //-----------------------------------------------------------
109 //-----------------------------------------------------------
111
113 GxGuiFormCollisionList( void ) : _pTool(nullptr), _pSplitter(nullptr), _pGuiWorld(nullptr), _pGuiCollision(nullptr), _pGuiObject(nullptr){}
115 GxGuiFormCollisionList( GxToolCollisionViewer* pTool );
116
118 b32 initialize(void) override;
119
121 //-----------------------------------------------------------
123 //-----------------------------------------------------------
125protected:
127 void update(void) override;
129 void onDraw( void ) override;
130
132 void createGuiCollision( GxCollision::GxWorld* pWorld );
134 void createGuiObject( GxCollision* pCollision );
135
137 //-----------------------------------------------------------
139 //-----------------------------------------------------------
141private:
142 GxToolCollisionViewer* _pTool;
143
144 GxGuiSplitterCross* _pSplitter;
145 GxGuiPropertyTable* _pGuiWorld;
146 GxGuiPropertyTable* _pGuiCollision;
147 GxGuiPropertyTable* _pGuiObject;
148
150};
151
152//===========================================================================
154//===========================================================================
155class GxToolCollisionViewer::GxGuiFormWorldInformation : public GxGuiFormProperty
156{
157 //-----------------------------------------------------------
159 //-----------------------------------------------------------
161public:
162 // RTTI宣言
163 GX_RTTI_CLASS( GxGuiFormWorldInformation, GxGuiFormProperty )
164 // ClassBaseReference継承クラス用禁止宣言
165 GX_PROHIBIT_CLASS_BASE_REFERENCE(GxGuiFormWorldInformation)
166
167
168 //-----------------------------------------------------------
170 //-----------------------------------------------------------
172
174 GxGuiFormWorldInformation( void ) : _pTool(nullptr){}
176 GxGuiFormWorldInformation( GxToolCollisionViewer* pTool );
177
179 b32 initialize(void) override;
180
182 //-----------------------------------------------------------
184 //-----------------------------------------------------------
186protected:
188 void update(void) override;
189
191 //-----------------------------------------------------------
193 //-----------------------------------------------------------
195private:
196 GxToolCollisionViewer* _pTool;
197
198 u32 _objectCount;
199 u32 _activeObjectCount;
200 u32 _meshTriangleCount;
201
203};
204
205//===========================================================================
207//===========================================================================
208class GxToolCollisionViewer::GxToolCollisionProperty : public GxToolClassProperty
209{
210 //-----------------------------------------------------------
212 //-----------------------------------------------------------
214public:
215 // RTTI宣言
216 GX_RTTI_CLASS( GxToolCollisionProperty, GxToolClassProperty )
217 // ClassBaseReference継承クラス用禁止宣言
218 GX_PROHIBIT_CLASS_BASE_REFERENCE(GxToolCollisionProperty)
219
220
221 //-----------------------------------------------------------
223 //-----------------------------------------------------------
225
227 GxToolCollisionProperty(void){}
228
230 //-----------------------------------------------------------
232 //-----------------------------------------------------------
234protected:
236 void update( void ) override;
237
239};
240
241//===========================================================================
243//===========================================================================
244class GxToolCollisionViewer::GxToolObjectProperty : public GxToolClassProperty
245{
246 //-----------------------------------------------------------
248 //-----------------------------------------------------------
250public:
251 // RTTI宣言
252 GX_RTTI_CLASS( GxToolObjectProperty, GxToolClassProperty )
253 // ClassBaseReference継承クラス用禁止宣言
254 GX_PROHIBIT_CLASS_BASE_REFERENCE(GxToolObjectProperty)
255
256
257 //-----------------------------------------------------------
259 //-----------------------------------------------------------
261
263 GxToolObjectProperty(void){}
264
266 //-----------------------------------------------------------
268 //-----------------------------------------------------------
270protected:
272 void update( void ) override;
273
275};
276
277//===========================================================================
279//===========================================================================
280class GxToolCollisionViewer::GxGuiPropertyTablePhysics : public GxGuiPropertyTable
281{
282 //-----------------------------------------------------------
284 //-----------------------------------------------------------
286public:
287 // RTTI宣言
288 GX_RTTI_CLASS( GxGuiPropertyTablePhysics, GxGuiPropertyTable )
289 // ClassBaseReference継承クラス用禁止宣言
290 GX_PROHIBIT_CLASS_BASE_REFERENCE(GxGuiPropertyTablePhysics)
291
292
293 //-----------------------------------------------------------
295 //-----------------------------------------------------------
297
299 GxGuiPropertyTablePhysics( void ) : _pRttiPropertyTool(nullptr){}
301 GxGuiPropertyTablePhysics( const GxProperty& property, GxTypedObject* pObject, GxRtti* pRttiTool );
302
304 //-----------------------------------------------------------
306 //-----------------------------------------------------------
308protected:
310 void onDoubleClick( const GxPoint2& position, u32 button ) override;
311
313 //-----------------------------------------------------------
315 //-----------------------------------------------------------
317private:
318 GxRtti* _pRttiPropertyTool;
319
321};
322
323GX_PHYSICS_NAMESPACE_END()
324#endif // GX_DEVELOP
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
void GxTypedObject
その他
Definition GxDefine.h:213
#define GX_PHYSICS_NAMESPACE_BEGIN()
ネームスペースマクロ
Definition GxPhysics.h:28
Collision基本オブジェクトクラス
Definition GxCollision.h:489
Collision基本ワールドクラス
Definition GxCollision.h:236
コリジョン基本クラス
Definition GxCollision.h:20
プロパティクラス
Definition GxProperty.h:48
実行時型情報クラス
Definition GxRtti.h:154
座標
Definition GxStruct.h:867
32bitブーリアン
Definition GxDefine.h:173