OROCHI
 
Loading...
Searching...
No Matches
GxToolRagdoll.h
Go to the documentation of this file.
1//===========================================================================
10//===========================================================================
11#pragma once
12
13#if GX_EDITOR
14
15// リソースの構造体名が長くなるので省略
16#define RESOURCE_BODY_DATA GxResRagdoll::GxRagdollBodyData
17#define RESOURCE_JOINT_DATA GxResRagdoll::GxRagdollJointData
18
19GX_UTILITY_NAMESPACE_BEGIN()
20//===========================================================================
36//===========================================================================
37class GxToolRagdoll : public GxToolResourceEditBase
38{
39 //-----------------------------------------------------------
41 //-----------------------------------------------------------
43public:
44 // RTTI宣言
45 GX_RTTI_CLASS_NAME_ICON(GxToolRagdoll, GxToolResourceEditBase, "ラグドール編集", GxRtti::ICON_TYPE::UTILITY);
46 // 参照クラス用禁止宣言
48
50 enum
51 {
52 RAGDOLL_TOOL_POSITION_X = 40,
53 RAGDOLL_TOOL_POSITION_Y = 2,
54 RAGDOLL_TOOL_WIDTH = 400,
55 RAGDOLL_TOOL_HEIGHT = 720 - RAGDOLL_TOOL_POSITION_Y * 2,
56 RAGDOLL_TOOL_SPLIT_Y = 136,
57 TOOL_DATA_FORM_SPLIT_X = 196,
58 MODEL_DATA_FORM_SPLIT_Y = 52,
59 RAGDOLL_DATA_FORM_SPLIT_X = 196,
60 RAGDOLL_DATA_FORM_TAB_H = 36,
61 BODY_FORM_SPLIT_X = TOOL_DATA_FORM_SPLIT_X,
62 BODY_FORM_SPLIT_Y = 56,
63 JOINT_FORM_SPLIT_Y = 52,
64 FORM_WIDTH = 100,
65 FORM_HEIGHT = 100,
66 };
67
69 enum GTR_TOOL_FLAG
70 {
71 GTR_TOOL_FLAG_RENDER = ( 1 << 0 ),
72 GTR_TOOL_FLAG_RENDER_BODY_DATA = ( 1 << 1 ),
73 GTR_TOOL_FLAG_RENDER_ONLY_SELECTED_BODY_DATA = ( 1 << 2 ),
74 GTR_TOOL_FLAG_RENDER_JOINT_DATA = ( 1 << 3 ),
75 GTR_TOOL_FLAG_RENDER_ONLY_SELECTED_JOINT_DATA = ( 1 << 4 ),
76 GTR_TOOL_FLAG_RENDER_JOINT_CONE = ( 1 << 5 ),
77 GTR_TOOL_FLAG_RENDER_JOINT_CONE_TO_FAN = ( 1 << 6 ),
78
79 GTR_TOOL_FLAG_DEFAULT = ( GTR_TOOL_FLAG_RENDER | GTR_TOOL_FLAG_RENDER_BODY_DATA | GTR_TOOL_FLAG_RENDER_JOINT_DATA | GTR_TOOL_FLAG_RENDER_JOINT_CONE )
80 };
81
82 class GxFormToolData;
83 class GxFormRagdollData;
84 class GxUnitRagdoll;
85
87 //-----------------------------------------------------------
89 //-----------------------------------------------------------
91
93 GxToolRagdoll(void);
94
96 b32 initialize(void) override;
98 void cleanup(void) override;
99
101 //-----------------------------------------------------------
103 //-----------------------------------------------------------
105
107 void update(void) override;
109 void setResource(GxResBase* pResrouce) override;
110
112 void setResourceModel(GxResModel* pResourceModel);
114 void setResourceMotion(GxResMotionPackage* pResourceMotion);
115
117 void createUnitRagdoll(void);
119 virtual const GxRtti & getCreateModelRtti(void);
120
122 void renderRagdollData(void);
123
125 void resetModel(void);
126
128 void createBody(void);
130 void deleteBody(void);
132 virtual void initializeBody(RESOURCE_BODY_DATA* pBodyData);
133
135 void createJoint(void);
137 void deleteJoint(void);
139 virtual void initializeJoint(RESOURCE_JOINT_DATA* pJointData);
140
142 //-----------------------------------------------------------
144 //-----------------------------------------------------------
146
148 constexpr void getPropertyResourceModel(void* const pValue) { *static_cast<GxResModel**>(pValue) = _pResourceModel; }
150 GX_FORCE_INLINE void setPropertyResourceModel(const void* const pValue) { auto* pResourceModel = *static_cast<GxResModel**>(const_cast<void*>(pValue)); setResourceModel( pResourceModel ); }
151
153 constexpr void getPropertyResourceMotion(void* const pValue) { *static_cast<GxResMotionPackage**>(pValue) = _pResourceMotion; }
155 GX_FORCE_INLINE void setPropertyResourceMotion(const void* const pValue) { auto* pResourceMotion = *static_cast<GxResMotionPackage**>(const_cast<void*>(pValue)); setResourceMotion( pResourceMotion ); }
156
158 void getPropertyTable(GxPropertyTable* pPropertyTable);
160 static GxGuiBase* createGui(GxProperty& property, GxTypedObject* pOwner, const GxRtti& rtti, u32 index = 0);
161
163 void getPropertyTableBodyDataCommon(GxPropertyTable& propertyTable);
164
166 GX_FORCE_INLINE void getPropertyUsesDataCommon(void* const pValue) { *static_cast<b32*>(pValue) = getResourceRagdollXml() ? getResourceRagdollXml()->isUsesDataCommon() : static_cast<const GxResRagdollXml*>(GxResRagdollXml::GX_RTTI.getDefaultObject())->isUsesDataCommon(); }
168 void setPropertyUsesDataCommon(const void* const pValue);
170 void setPropertyUsesDataCommonOk(b32 value);
171
173 GX_FORCE_INLINE void getPropertyCalcsMassAuto(void* const pValue) { *static_cast<b32*>(pValue) = getResourceRagdollXml() ? getResourceRagdollXml()->isCalcsMassAuto() : static_cast<const GxResRagdollXml*>(GxResRagdollXml::GX_RTTI.getDefaultObject())->isCalcsMassAuto(); }
175 void setPropertyCalcsMassAuto(const void* const pValue);
177 void setPropertyCalcsMassAutoOk(b32 value);
178
180 void setPropertyCancel(void){}
181
183 constexpr void getPropertyMass(void* const pValue){ *static_cast<f32*>(pValue) = _massTotal; }
185 constexpr void getPropertyFriction(void* const pValue){ *static_cast<f32*>(pValue) = _friction; }
187 constexpr void getPropertyDeactivationTime(void* const pValue){ *static_cast<f32*>(pValue) = _deactivationTime; }
189 constexpr void getPropertyLinearDamping(void* const pValue){ *static_cast<f32*>(pValue) = _linearDamping; }
191 constexpr void getPropertyAngularDamping(void* const pValue){ *static_cast<f32*>(pValue) = _angularDamping; }
193 constexpr void getPropertyLinearVelocityThreshold(void* const pValue){ *static_cast<f32*>(pValue) = _linearVelocityThreshold; }
195 constexpr void getPropertyAngularVelocityThreshold(void* const pValue){ *static_cast<f32*>(pValue) = _angularVelocityThreshold; }
197 void setPropertyMass(const void* const pValue);
199 void setPropertyFriction(const void* const pValue);
201 void setPropertyDeactivationTime(const void* const pValue);
203 void setPropertyLinearDamping(const void* const pValue);
205 void setPropertyAngularDamping(const void* const pValue);
207 void setPropertyLinearVelocityThreshold(const void* const pValue);
209 void setPropertyAngularVelocityThreshold(const void* const pValue);
210
211protected:
213 void setCommonParamAll(void(*pSetFunc)(GxResRagdoll::GxRagdollBodyData*, f32), f32 value);
215 void calculateMassAuto(f32 massTotal);
217 void getMassAuto(u32 bodyCount, f32 massTotal, f32* pMass);
219 void updateMassTotal(void);
220
222 GX_FORCE_INLINE static void setDataFriction(GxResRagdoll::GxRagdollBodyData* pData, f32 value){ pData->_friction = value; }
224 GX_FORCE_INLINE static void setDataDeactivationTime(GxResRagdoll::GxRagdollBodyData* pData, f32 value){ pData->_deactivationTime = value; }
226 GX_FORCE_INLINE static void setDataLinearDamping(GxResRagdoll::GxRagdollBodyData* pData, f32 value){ pData->_linearDamping = value; }
228 GX_FORCE_INLINE static void setDataAngularDamping(GxResRagdoll::GxRagdollBodyData* pData, f32 value){ pData->_angularDamping = value; }
230 GX_FORCE_INLINE static void setDataLinearVelocityThreshold(GxResRagdoll::GxRagdollBodyData* pData, f32 value){ pData->_linearVelocityThreshold = value; }
232 GX_FORCE_INLINE static void setDataAngularVelocityThreshold(GxResRagdoll::GxRagdollBodyData* pData, f32 value){ pData->_angularVelocityThreshold = value; }
233
235 constexpr GxResRagdollXml* getResourceRagdollXml(void) { return static_cast<GxResRagdollXml*>(getResource()); }
237 GX_FORCE_INLINE const GxResRagdollXml* getResourceRagdollXml(void) const { return static_cast<const GxResRagdollXml*>(getResource()); }
238
240 constexpr GxUnitRagdoll* getUnitRagdoll(void) const { return _pUnitRagdoll; }
241
243 constexpr RESOURCE_BODY_DATA* getBodyDataCurrent(void) const { return _pBodyDataCurrent; }
245 constexpr void setBodyDataCurrent(RESOURCE_BODY_DATA* pBodyData) { _pBodyDataCurrent = pBodyData; }
246
248 constexpr RESOURCE_JOINT_DATA* getJointDataCurrent(void) const { return _pJointDataCurrent; }
250 constexpr void setJointDataCurrent(RESOURCE_JOINT_DATA * pJointData) { _pJointDataCurrent = pJointData; }
251
253 GX_FORCE_INLINE b32 isToolDebugRendering(void) const { return isDataRendering(); }
255 GX_FORCE_INLINE void setToolDebugRendering(b32 on) { ( _isToolDebugRendering = on) ? ( _toolFlag |= GTR_TOOL_FLAG_RENDER ) : ( _toolFlag &= ~GTR_TOOL_FLAG_RENDER ); }
256
258 GX_FORCE_INLINE b32 isDataRendering(void) const { return ( _toolFlag & GTR_TOOL_FLAG_RENDER ) ? true : false; }
260 GX_FORCE_INLINE b32 isBodyDataRendering(void) const { return ( _toolFlag & GTR_TOOL_FLAG_RENDER_BODY_DATA ) ? true : false; }
262 GX_FORCE_INLINE b32 isSelectedBodyDataRendering(void) const { return ( _toolFlag & GTR_TOOL_FLAG_RENDER_ONLY_SELECTED_BODY_DATA ) ? true : false; }
264 GX_FORCE_INLINE b32 isJointDataRendering(void) const { return ( _toolFlag & GTR_TOOL_FLAG_RENDER_JOINT_DATA ) ? true : false; }
266 GX_FORCE_INLINE b32 isSelectedJointDataRendering(void) const { return ( _toolFlag & GTR_TOOL_FLAG_RENDER_ONLY_SELECTED_JOINT_DATA ) ? true : false; }
268 GX_FORCE_INLINE b32 isJointConeRendering(void) const { return ( _toolFlag & GTR_TOOL_FLAG_RENDER_JOINT_CONE ) ? true : false; }
270 GX_FORCE_INLINE b32 isJointConeToFanRendering(void) const { return ( _toolFlag & GTR_TOOL_FLAG_RENDER_JOINT_CONE_TO_FAN ) ? true : false; }
271
273 //-----------------------------------------------------------
275 //-----------------------------------------------------------
277protected:
278 GxGuiSplitter* _pSplitter;
279 GxFormToolData* _pFormToolData;
280 GxFormRagdollData* _pFormRagdollData;
281 GxUnitRagdoll* _pUnitRagdoll;
282 GxResModel* _pResourceModel;
283 GxResMotionPackage* _pResourceMotion;
284
285 RESOURCE_BODY_DATA* _pBodyDataCurrent;
286 RESOURCE_JOINT_DATA* _pJointDataCurrent;
287
288 b32 _isToolDebugRendering;
289 u32 _toolFlag;
290
291 f32 _massTotal;
292 f32 _friction;
293 f32 _deactivationTime;
294 f32 _linearDamping;
295 f32 _angularDamping;
296 f32 _linearVelocityThreshold;
297 f32 _angularVelocityThreshold;
298
300};
301
302//===========================================================================
316//===========================================================================
317class GxToolRagdoll::GxFormToolData : public GxGuiForm
318{
319 //-----------------------------------------------------------
321 //-----------------------------------------------------------
323public:
324 // RTTI定義
325 GX_RTTI_CLASS(GxToolRagdoll::GxFormToolData, GxGuiForm);
326 // ClassBaseReference 継承クラス用禁止宣言
327 GX_PROHIBIT_CLASS_BASE_REFERENCE(GxFormToolData);
328
330 //-----------------------------------------------------------
332 //-----------------------------------------------------------
334
336 GxFormToolData(void) : _pSplitter(nullptr), _pFormModelData(nullptr), _pFormMotionData(nullptr), _pFormButton(nullptr), _pTool(nullptr){}
338 GxFormToolData(GxToolRagdoll * pTool);
339
341 b32 initialize(void) override;
342
344 //-----------------------------------------------------------
346 //-----------------------------------------------------------
348
350 void onSize(const GxSize& size) override;
351
353 void testRagdoll(void);
355 void testRigidBody(void);
357 void testJoint(void);
358
360 void toggleModuleDebugRendering(void);
361
363 GX_FORCE_INLINE void toggleToolDebugRendering(void) { _pTool->setToolDebugRendering( ! _pTool->isToolDebugRendering() ); }
364
366 static GxGuiBase* createGui(GxProperty& property, GxTypedObject* pOwner, const GxRtti& rtti, u32 index = 0);
367
369 //-----------------------------------------------------------
371 //-----------------------------------------------------------
373
375 void setPropertyTableFormModelData(GxToolRagdoll::GxUnitRagdoll* pUnitRagdoll);
377 void setPropertyTableFormMotionData(GxToolRagdoll::GxUnitRagdoll* pUnitRagdoll);
379 void setPropertyTableFormButton(b32 isRagdoll);
380
382 constexpr GxResRagdollXml* getResourceRagdollXml(void) { return static_cast<GxResRagdollXml*>(_pTool->getResource()); }
384 GX_FORCE_INLINE const GxResRagdollXml* getResourceRagdollXml(void) const { return static_cast<GxResRagdollXml*>(_pTool->getResource()); }
385
387 constexpr GxUnitRagdoll* getUnitRagdoll(void) const { return _pTool->getUnitRagdoll(); }
388
390 constexpr RESOURCE_BODY_DATA* getBodyDataCurrent(void) const { return _pTool->getBodyDataCurrent(); }
392 constexpr void setBodyDataCurrent(RESOURCE_BODY_DATA * pBodyData){ return _pTool->setBodyDataCurrent( pBodyData ); }
393
395 constexpr RESOURCE_JOINT_DATA* getJointDataCurrent(void) const { return _pTool->getJointDataCurrent(); }
397 constexpr void setJointDataCurrent(RESOURCE_JOINT_DATA * pJointData){ return _pTool->setJointDataCurrent( pJointData ); }
398
400 //-----------------------------------------------------------
402 //-----------------------------------------------------------
404protected:
405 GxGuiSplitter* _pSplitter;
406 GxGuiFormProperty* _pFormModelData;
407 GxGuiFormProperty* _pFormMotionData;
408 GxGuiFormProperty* _pFormButton;
409 GxToolRagdoll* _pTool;
410
412};
413
414//===========================================================================
429//===========================================================================
430class GxToolRagdoll::GxFormRagdollData : public GxGuiForm
431{
432 //-----------------------------------------------------------
434 //-----------------------------------------------------------
436public:
437 // RTTI定義
438 GX_RTTI_CLASS(GxToolRagdoll::GxFormRagdollData, GxGuiForm);
439 // ClassBaseReference 継承クラス用禁止宣言
440 GX_PROHIBIT_CLASS_BASE_REFERENCE(GxFormRagdollData);
441
442 class GxFormBody;
443 class GxFormJoint;
444
446 //-----------------------------------------------------------
448 //-----------------------------------------------------------
450
452 GxFormRagdollData(void) : _pTool(nullptr){}
454 GxFormRagdollData(GxToolRagdoll* pTool);
455
457 b32 initialize(void) override;
458
460 //-----------------------------------------------------------
462 //-----------------------------------------------------------
464
466 void onSize(const GxSize& size) override;
467
469 //-----------------------------------------------------------
471 //-----------------------------------------------------------
473
475 constexpr GxResRagdollXml* getResourceRagdollXml(void) { return static_cast<GxResRagdollXml*>(_pTool->getResource()); }
477 GX_FORCE_INLINE const GxResRagdollXml* getResourceRagdollXml(void) const { return static_cast<GxResRagdollXml*>(_pTool->getResource()); }
478
480 //-----------------------------------------------------------
482 //-----------------------------------------------------------
484protected:
485 GxToolRagdoll* _pTool;
486
488};
489
490//===========================================================================
513//===========================================================================
514class GxToolRagdoll::GxFormRagdollData::GxFormBody : public GxGuiForm
515{
516 //-----------------------------------------------------------
518 //-----------------------------------------------------------
520public:
521 // RTTI定義
522 GX_RTTI_CLASS(GxToolRagdoll::GxFormRagdollData::GxFormBody, GxGuiForm);
523 // ClassBaseReference 継承クラス用禁止宣言
525
527 //-----------------------------------------------------------
529 //-----------------------------------------------------------
531
533 GxFormBody(void) : _pSplitter(nullptr), _pFormBodyData(nullptr), _pTool(nullptr){}
535 GxFormBody(GxToolRagdoll* pTool);
536
538 b32 initialize(void) override;
539
541 //-----------------------------------------------------------
543 //-----------------------------------------------------------
545
547 void update(void) override;
549 void onSize(const GxSize& size) override;
550
552 //-----------------------------------------------------------
554 //-----------------------------------------------------------
556
558 constexpr void getBodyCount(void* const pValue) { *(static_cast<u32*>(pValue)) = getResourceRagdollXml()->getBodyDataCount(); }
560 constexpr void setBodyCount(const void* const /*pValue*/) {}
561
563 constexpr void getBodyIndex(void* const pValue) { *(static_cast<u32*>(pValue)) = _bodyIndex; }
565
569 void setBodyIndex(const void* const pValue);
570
572 void setPropertyTableFormBodyData(void);
574
578 void setPropertyTableFormBodyDataDetail(GxPropertyTable& referenceOutputPropertyTable);
580 void setPropertyTableFormBodyDataCommon(void);
581
583 void getJointName(void* const pValue);
585 constexpr void setJointName(const void* const /*pValue*/) {}
586
588 constexpr GxResRagdollXml* getResourceRagdollXml(void) { return static_cast<GxResRagdollXml*>(_pTool->getResource()); }
590 GX_FORCE_INLINE const GxResRagdollXml* getResourceRagdollXml(void) const { return static_cast<GxResRagdollXml*>(_pTool->getResource()); }
591
593 constexpr GxUnitRagdoll* getUnitRagdoll(void) const { return _pTool->getUnitRagdoll(); }
594
596 constexpr u32 getBodyCount(void) const { return getResourceRagdollXml()->getBodyDataCount(); }
597
599 constexpr u32 getBodyIndex(void) const { return _bodyIndex; }
601 constexpr void setBodyIndex(u32 index) { _bodyIndex = index; }
602
604 constexpr RESOURCE_BODY_DATA* getBodyDataCurrent(void) const { return _pTool->getBodyDataCurrent(); }
606 constexpr void setBodyDataCurrent(RESOURCE_BODY_DATA* pBodyData) { return _pTool->setBodyDataCurrent( pBodyData ); }
607
609 b32 reloadGuiBodyTable(void);
610
612 //-----------------------------------------------------------
614 //-----------------------------------------------------------
616protected:
617 GxGuiSplitter* _pSplitter;
618 GxGuiFormProperty* _pFormBodyData;
619 GxGuiFormProperty* _pFormBodyDataCommon;
620 GxToolRagdoll* _pTool;
621 u32 _bodyIndex;
622 GxGuiPropertyTable* _pGuiBodyTable;
623 b32 _calcsMassAuto;
624 b32 _usesDataCommon;
625
627};
628
629//===========================================================================
646//===========================================================================
647class GxToolRagdoll::GxFormRagdollData::GxFormJoint : public GxGuiForm
648{
649 //-----------------------------------------------------------
651 //-----------------------------------------------------------
653public:
654 // RTTI定義
655 GX_RTTI_CLASS(GxToolRagdoll::GxFormRagdollData::GxFormJoint, GxGuiForm);
656 // ClassBaseReference 継承クラス用禁止宣言
658
660 //-----------------------------------------------------------
662 //-----------------------------------------------------------
664
666 GxFormJoint(void) : _pSplitter(nullptr), _pFormJointData(nullptr), _pTool(nullptr){}
668 GxFormJoint(GxToolRagdoll* pTool);
669
671 b32 initialize(void) override;
672
674 //-----------------------------------------------------------
676 //-----------------------------------------------------------
678
680 void update(void) override;
682 void onSize(const GxSize& size) override;
683
685 //-----------------------------------------------------------
687 //-----------------------------------------------------------
689
691 constexpr void getJointCount(void* const pValue) { *(static_cast<u32*>(pValue)) = getResourceRagdollXml()->getJointDataCount(); }
693 constexpr void setJointCount(const void* const /*pValue*/) {}
694
696 constexpr void getJointIndex(void* const pValue) { *(static_cast<u32*>(pValue)) = _jointIndex; }
698
702 void setJointIndex(const void* const pValue);
703
705 void setPropertyTableFormJointData(void);
707
712 void setPropertyTableFormJointDataDetail(GxPropertyTable& referenceOutputPropertyTable);
713
715 void setOffsetBody0(void);
717 void setOffsetBody1(void);
719 void setOffsetBody(u32 bodyIndex);
720
722 b32 reloadGuiJointTable(void);
723
725 //-----------------------------------------------------------
727 //-----------------------------------------------------------
729
731 constexpr GxResRagdollXml* getResourceRagdollXml(void) { return static_cast<GxResRagdollXml*>(_pTool->getResource()); }
733 GX_FORCE_INLINE const GxResRagdollXml* getResourceRagdollXml(void) const { return static_cast<const GxResRagdollXml*>(_pTool->getResource()); }
734
736 constexpr GxUnitRagdoll* getUnitRagdoll(void) const { return _pTool->getUnitRagdoll(); }
737
739 constexpr u32 getJointCount(void) const { return getResourceRagdollXml()->getJointDataCount(); }
740
742 constexpr u32 getJointIndex(void) const { return _jointIndex; }
744 constexpr void setJointIndex(u32 index) { _jointIndex = index; }
745
747 constexpr RESOURCE_JOINT_DATA* getJointDataCurrent(void) const { return _pTool->getJointDataCurrent(); }
749 constexpr void setJointDataCurrent(RESOURCE_JOINT_DATA* pJointData) { _pTool->setJointDataCurrent( pJointData ); }
750
752 //-----------------------------------------------------------
754 //-----------------------------------------------------------
756protected:
757 GxGuiSplitter* _pSplitter;
758 GxGuiFormProperty* _pFormJointData;
759 GxToolRagdoll* _pTool;
760 u32 _jointIndex;
761 b32 _isHingePropertyRendering;
762 GxGuiPropertyTable* _pGuiJointTable;
763
765};
766
767//===========================================================================
769//===========================================================================
770class GxToolRagdoll::GxUnitRagdoll : public GxUnitModel
771{
772 //-----------------------------------------------------------
774 //-----------------------------------------------------------
776public:
777 // RTTI定義
778 GX_RTTI_CLASS(GxToolRagdoll::GxUnitRagdoll, GxUnitModel);
779
781 //-----------------------------------------------------------
783 //-----------------------------------------------------------
785
787 GxUnitRagdoll(void);
789 ~GxUnitRagdoll(void) override;
790
792 //-----------------------------------------------------------
794 //-----------------------------------------------------------
796
798 void asyncUpdate(void) override;
799
801 void setupRagdoll(GxResRagdollXml* pResourceXml);
803 void setupRagdoll(GxModUnitRagdoll::GxRagdollCondition* pCondition);
805 virtual void ragdollCallback(void);
807 void developRender(void) override;
809 GX_FORCE_INLINE b32 isModuleDebugRendering(void) const { return getModule<GxModUnitRagdoll>()->isDevelopRender(); }
811 GX_FORCE_INLINE void setModuleDebugRendering(b32 isDraw) { getModule<GxModUnitRagdoll>()->setDevelopRender( isDraw ); }
812
814 constexpr GxMotionPlayer* getMotion(void) const { return _pMotion; }
816 b32 createMotion(GxResMotionPackage* pResource);
818 GX_FORCE_INLINE virtual GxMotionPlayer* allocateMotion(void) { return GX_NEW GxMotionPlayer; }
819
821 //-----------------------------------------------------------
823 //-----------------------------------------------------------
825protected:
826 GxMotionPlayer* _pMotion;
827
829};
830
831GX_UTILITY_NAMESPACE_END()
832
833#endif // GX_EDITOR
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
void GxTypedObject
その他
Definition GxDefine.h:213
モーション再生クラス
Definition GxMotionPlayer.h:22
プロパティクラス
Definition GxProperty.h:48
プロパティテーブルクラス
Definition GxProperty.h:1641
リソース基底クラス
Definition GxResBase.h:23
モデルリソースクラス
Definition GxResModel.h:20
モーションパッケージリソース
Definition GxResMotionPackage.h:20
剛体データクラス
Definition GxResRagdoll.h:35
f32 _angularDamping
角速度の減衰
Definition GxResRagdoll.h:60
f32 _linearDamping
線形速度の減衰
Definition GxResRagdoll.h:58
f32 _friction
摩擦係数
Definition GxResRagdoll.h:56
f32 _angularVelocityThreshold
角速度の非アクティブ化閾値
Definition GxResRagdoll.h:62
f32 _linearVelocityThreshold
線形速度の非アクティブ化閾値
Definition GxResRagdoll.h:61
f32 _deactivationTime
非アクティブになるまでの時間
Definition GxResRagdoll.h:57
実行時型情報クラス
Definition GxRtti.h:154
T * getModule(void) const
モジュールを取得
Definition GxUnitBase.h:246
void asyncUpdate(void) override
並列更新
Definition GxUnitLocate.cpp:122
モデルクラス
Definition GxUnitModel.h:19
全体構造体
Definition GxModUnitRagdoll.h:61
サイズ
Definition GxStruct.h:730
32bitブーリアン
Definition GxDefine.h:173