41class GxToolCollisionSet : public GxToolResourceEditBase
56 FORM_POSITION_X = 100,
63 INFO_FORM_WIDTH = 100,
64 INFO_FORM_HEIGHT = 100,
65 INFO_SPLIT_POSITION_X = 280,
66 INFO_SPLIT_POSITION_Y = 160,
72 DISPLAY_ONLY_SELECTED = (0x01 << 0),
73 DISPLAY_BACKGROUND_HIT = (0x01 << 1),
74 DISPLAY_OBJECT_HIT = (0x01 << 2),
75 DISPLAY_EVENT_HIT = (0x01 << 3),
76 DISPLAY_ATTACK_HIT = (0x01 << 4),
77 DISPLAY_DYNAMICS = (0x01 << 5),
78 DISPLAY_DEFAULT = DISPLAY_ONLY_SELECTED | DISPLAY_BACKGROUND_HIT | DISPLAY_OBJECT_HIT | DISPLAY_EVENT_HIT | DISPLAY_ATTACK_HIT | DISPLAY_DYNAMICS,
79 DISPLAY_FLAG_ALL = 0x7fffffff,
82 class GxFormUnitInformation;
83 class GxFormCollisionData;
92 GxToolCollisionSet(
void);
95 b32 initialize(
void)
override;
98 void cleanup(
void )
override;
110 void update(
void)
override;
114 void createUnitModel(
void);
116 void resetModelFormProperty(
void);
125 void setFormCollisionObject( GxGuiFormProperty* pForm );
128 void setResource(
GxResBase* pRes)
override;
131 constexpr GxResModel* getResourceModel(
void)
const {
return _pResModel; }
136 constexpr void getPropertyResModel(
void*
const pValue) { *
static_cast<GxResModel**
>(pValue) = _pResModel; }
138 void setPropertyResModel(
const void*
const pValue);
143 constexpr GxUnitModel* getUnitModel(
void )
const {
return _pUnitModel; }
145 GX_FORCE_INLINE
b32 isDisplay(DISPLAY display)
const {
return (_displayFlag & display) ? true :
false; }
148 GX_FORCE_INLINE
virtual const GxRtti& getCreateModelRtti(
void) {
return GxUnitModel::GX_RTTI; }
152 constexpr GxGuiTab* getGuiTab(
void )
const {
return _pTab; }
165 GxFormCollisionData* _pFormCollision;
166 GxGuiSplitter* _pSplitter;
168 GxGuiFormProperty* _pFormModel;
176class GxToolCollisionSet::GxFormUnitInformation :
public GxGuiForm
184 GX_RTTI_CLASS(GxToolCollisionSet::GxFormUnitInformation, GxGuiForm)
189 static constexpr u32 SELECT_COLOR_R = 0x00;
191 static constexpr u32 SELECT_COLOR_G = 0x00;
193 static constexpr u32 SELECT_COLOR_B = 0xff;
202 GxFormUnitInformation( GxToolCollisionSet* pTool );
205 GxFormUnitInformation(
void) : _pFormUnitProperty(nullptr), _pTool(nullptr) {}
209 b32 initialize(
void )
override;
218 virtual void setPopupMenu(
const GxPoint2& position);
222 void onSize(
const GxSize& size)
override;
225 void onDraw(
void )
override;
228 void onClick(
const GxPoint2& position, u32 button)
override;
236 GxGuiFormProperty* _pFormUnitProperty;
239 GxToolCollisionSet* _pTool;
247class GxToolCollisionSet::GxFormCollisionData :
public GxGuiForm
255 GX_RTTI_CLASS(GxToolCollisionSet::GxFormCollisionData, GxGuiForm)
266 GxFormCollisionData( GxToolCollisionSet* pTool );
270 GxFormCollisionData(
void) : _pTableObject(nullptr), _pFormCollisionObject(nullptr), _pCurrentObjectData(nullptr), _pTool(nullptr) {}
274 b32 initialize(
void )
override;
283 void onToolResourceReset(
void );
286 virtual void createCollisionObject(
void);
289 virtual void deleteCollisionObject(
void);
292 virtual void copyCollisionObject(
void);
296 void update(
void)
override;
299 void onSize(
const GxSize& size)
override;
302 void onDraw(
void)
override;
307 void onClick(
const GxPoint2& position, u32 button)
override;
310 virtual void setPopupMenu(
const GxPoint2& position);
337 void createPropertyTableMultiSphereDoubleJoint(
GxPropertyTable& table );
342 void updateShape(
void );
344 void updateShapeTopBottom(
void );
346 void updateShapeOthers(
void );
349 void updateShapeCapsule(
void );
351 void updateShapeTopBottomCapsule(
void );
353 void updateShapeOthersCapsule(
void );
361 GxGuiPropertyTable* _pTableObject;
362 GxGuiFormProperty* _pFormCollisionObject;
371 f32 _capsuleRadiusOld;
377 GxToolCollisionSet* _pTool;
382GX_PHYSICS_NAMESPACE_END()
#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_SHAPE
コリジョン形状
Definition GxCollision.h:38
プロパティクラス
Definition GxProperty.h:48
プロパティテーブルクラス
Definition GxProperty.h:1641
リソース基底クラス
Definition GxResBase.h:23
Definition GxResCollisionObject.h:113
COLLISION_TYPE
コリジョンの種類:リソース保存されることに注意
Definition GxResCollisionObject.h:36
モデルリソースクラス
Definition GxResModel.h:20
実行時型情報クラス
Definition GxRtti.h:154
モデルクラス
Definition GxUnitModel.h:19
座標
Definition GxStruct.h:867
クォータニオン
Definition GxQuaternion.h:19
サイズ
Definition GxStruct.h:730
3次元ベクトル
Definition GxVector.h:245
32bitブーリアン
Definition GxDefine.h:173