14GX_MOTION_NAMESPACE_BEGIN()
19class GxToolMotionIK : public GxToolResourceEditBase
31 static constexpr u32 OFFSET_MOTION_LIST = 230;
33 static constexpr u32 OFFSET_FILE_PATH = 117;
35 static constexpr u32 OFFSET_PARAMETER_TABLE = 60;
37 class GxGuiFormControl;
38 class GxGuiPropertyTableIKParam;
39 class GxGuiPropertyTableIKAttribute;
50 void cleanup(
void)
override;
52 b32 initialize(
void )
override;
61 void save(
void)
override;
63 void load(u32 attribute)
override;
65 void convertAs( u32 attribute )
override;
67 void convert(
void )
override;
69 void setResource(
GxResBase* pRes)
override;
75 void setResourceMotionIKXml( GxResMotionIKXml* pResMotionBlend );
81 void onCreate(
void)
override;
83 void update(
void)
override;
92 void createUnitModel(
void);
94 void changeMotion(s32 motionNumber);
96 b32 createGuiFilePath(
void);
98 void createGuiIKParamTable(
void);
100 void createGuiIKAttributeTable(
void);
102 void eventButtonCreateBlendResource(
void);
104 void createBlendResource(
void);
106 void createUnitBackground(
void);
120 constexpr void getPropertyResModel(
void*
const pValue) { *
static_cast<GxResModel**
>(pValue) = _pResModel; }
122 void setPropertyResModel(
const void*
const pValue);
124 constexpr void getPropertyResModelCollision(
void*
const pValue) { *
static_cast<GxResCollisionObject**
>(pValue) = _pResModelCollision; }
126 void setPropertyResModelCollision(
const void*
const pValue);
128 constexpr void getPropertyGxResMotionPackage(
void*
const pValue) { *
static_cast<GxResMotionPackage**
>(pValue) = _pResMotionPackage; }
130 void setPropertyGxResMotionPackage(
const void*
const pValue);
132 constexpr void getPropertyResMotionBlendXml(
void*
const pValue) { *
static_cast<GxResMotionIKXml**
>(pValue) = _pResMotionIKXml; }
134 void setPropertyResMotionBlendXml(
const void*
const pValue);
136 void getPropertyInterpolateXTranslate(
const void* pValue);
138 void getPropertyInterpolateYTranslate(
const void* pValue);
140 void getPropertyInterpolateZTranslate(
const void* pValue);
142 void getPropertyInterpolatePosition(
const void* pValue);
144 void getPropertyInterpolateRotate(
const void* pValue);
146 void getPropertyInterpolateScale(
const void* pValue);
148 void getPropertyInterpolateLoop(
const void* pValue);
150 void setPropertyInterpolateXTranslate(
const void* pValue);
152 void setPropertyInterpolateYTranslate(
const void* pValue);
154 void setPropertyInterpolateZTranslate(
const void* pValue);
156 void setPropertyInterpolatePosition(
const void* pValue);
158 void setPropertyInterpolateRotate(
const void* pValue);
160 void setPropertyInterpolateScale(
const void* pValue);
162 void setPropertyInterpolateLoop(
const void* pValue);
164 constexpr void getPropertyBackgroundResModel(
void*
const pValue) { *
static_cast<GxResModel**
>(pValue) = _pBackgroundResModel; }
166 void setPropertyBackgroundResModel(
const void*
const pValue);
168 constexpr void getPropertyBackgroundResCollision(
void*
const pValue) { *
static_cast<GxResCollisionMesh**
>(pValue) = _pBackgroundResCollision; }
170 void setPropertyBackgroundResCollision(
const void*
const pValue);
173 constexpr GxUnitMotion* getModel(
void)
const {
return _pUnitModel; }
175 constexpr GxResMotionIKXml* getResMotionBlendXml(
void)
const {
return _pResMotionIKXml; }
177 GX_FORCE_INLINE GxMotionNamesList* getMotionNamesList(
void){
return &_motionNamesList; }
179 constexpr GxGuiFormControl* getFormControl(
void)
const {
return _pFormControl; }
192 GxResMotionIKXml* _pResMotionIKXml;
193 GxMotionNamesList _motionNamesList;
195 GxGuiSplitter* _pSplitterMain;
196 GxGuiSplitter* _pSplitterFile;
197 GxGuiSplitter* _pSplitterAttribute;
198 GxGuiFormControl* _pFormControl;
199 GxGuiPropertyTableIKParam* _pIKParamTable;
200 GxGuiPropertyTableIKAttribute* _pIKAttributeTable;
213class GxToolMotionIK::GxGuiFormControl :
public GxGuiForm
221 GX_RTTI_CLASS(GxToolMotionIK::GxGuiFormControl, GxGuiForm)
232 GxGuiFormControl(GxToolMotionIK* pRoot=
nullptr);
234 b32 initialize(
void )
override;
243 void createMotionGui(
void);
245 void pushButtonPlay(
void);
251 void addFrame(f32 addFrame);
253 void pushButtonTop(
void);
255 void pushButtonBottom(
void);
257 void pushButtonBack(
void);
259 void pushButtonForward(
void);
268 constexpr GxUnitMotion* getModel(
void){
if(!_pRoot){
return nullptr; }
return _pRoot->getModel(); }
270 GX_FORCE_INLINE
b32 isPlay(
void)
const {
return _isMotionPlaying; }
272 constexpr s32 getBaseMotionNumber (
void)
const {
return _baseMotionNb; }
274 GX_FORCE_INLINE
b32 isDrawModel(
void)
const {
return _isDrawModel; }
276 GX_FORCE_INLINE
b32 isDrawJointLine(
void)
const {
return _isDrawJointLine; }
278 GX_FORCE_INLINE
b32 isDrawJointName(
void)
const {
return _isDrawJointName; }
280 constexpr s32 getWaistJointNumber(
void)
const {
return _waistJointNumber; }
282 constexpr INTERPOLATE getWaistJointCurveType (
void)
const {
return _waistJointCurveType; }
284 constexpr f32 getWaistJointCurveTargetFrameCount(
void)
const {
return _waistJointCurveTargetFrameCount; }
286 constexpr f32 getWaistJointCurvature(
void)
const {
return _waistJointCurvature; }
288 constexpr f32 getWaistJointAcceptDegree(
void)
const {
return _waistJointAcceptDegree; }
290 constexpr f32 getHeightOfSole(
void)
const {
return _heightOfSole; }
293 constexpr void setWaistJointNumber(s32 waistJointNumber) { _waistJointNumber = waistJointNumber; }
295 constexpr void setWaistJointCurveType (
INTERPOLATE waistJointCurveType ){ _waistJointCurveType = waistJointCurveType; }
297 constexpr void setWaistJointCurveTargetFrameCount(f32 waistJointCurveTargetFrameCount) { _waistJointCurveTargetFrameCount = waistJointCurveTargetFrameCount; }
299 constexpr void setWaistJointCurvature (f32 waistJointCurvature ){ _waistJointCurvature = waistJointCurvature; }
301 constexpr void setWaistJointAcceptDegree(f32 waistJointAcceptDegree){_waistJointAcceptDegree = waistJointAcceptDegree;}
303 constexpr void setHeightOfSole(f32 heightOfSole){_heightOfSole = heightOfSole;}
311 GxToolMotionIK* _pRoot;
312 GxGuiButton* _pButtonPlay;
314 b32 _isMotionPlaying;
316 GxGuiPropertyComboBoxEnum* _pGuiEnumStartMotion;
318 b32 _isDrawJointLine;
319 b32 _isDrawJointName;
320 s32 _waistJointNumber;
322 f32 _waistJointCurveTargetFrameCount;
323 f32 _waistJointCurvature;
324 f32 _waistJointAcceptDegree;
333class GxToolMotionIK::GxGuiPropertyTableIKParam :
public gx::core::GxGuiPropertyTable
340 GX_RTTI_CLASS( GxToolMotionIK::GxGuiPropertyTableIKParam, gx::core::GxGuiPropertyTable );
351 GxGuiPropertyTableIKParam(
void ) : _pRoot(nullptr), _pSelectObject(nullptr){}
354 GxGuiPropertyTableIKParam( GxToolMotionIK* pTool,
const GxProperty& property,
GxTypedObject* pObject, u32 index = 0,
b32 useFilter =
false, TYPE type = TYPE::HORIZON );
363 GX_FORCE_INLINE
b32 isChange(
void ){
return updateObjectList(); }
365 GX_FORCE_INLINE
b32 isChangeIKParamCount(
void)
const {
return _isChangeIKParamCount; }
367 constexpr void resetIsChangeIKParamCount(
void){ _isChangeIKParamCount =
false; }
376 void onClick(
const GxPoint2& position, u32 button )
override;
378 void createPopUpMenu(
const GxPoint2& position);
380 void eventDeleteInterpolationSettings(
void);
382 void eventCreateInterpolationSettings(
void);
390 GxToolMotionIK* _pRoot;
392 b32 _isChangeIKParamCount;
400class GxToolMotionIK::GxGuiPropertyTableIKAttribute :
public gx::core::GxGuiPropertyTable
407 GX_RTTI_CLASS( GxToolMotionIK::GxGuiPropertyTableIKAttribute, gx::core::GxGuiPropertyTable );
418 GxGuiPropertyTableIKAttribute(
void ) : _pRoot(nullptr), _pSelectObject(nullptr){}
421 GxGuiPropertyTableIKAttribute( GxToolMotionIK* pTool,
const GxProperty& property,
GxTypedObject* pObject, u32 index = 0,
b32 useFilter =
false, TYPE type = TYPE::HORIZON );
430 GX_FORCE_INLINE
b32 isChange(
void ){
return updateObjectList(); }
432 GX_FORCE_INLINE
b32 isChangeIKAttributeCount(
void)
const {
return _isChangeIKAttributeCount; }
434 constexpr void resetIsChangeIKAttributeCount(
void){ _isChangeIKAttributeCount =
false; }
443 void onClick(
const GxPoint2& position, u32 button )
override;
445 void createPopUpMenu(
const GxPoint2& position);
447 void eventDeleteAttributeSettings(
void);
449 void eventCreateAttributeSettings(
void);
457 GxToolMotionIK* _pRoot;
459 b32 _isChangeIKAttributeCount;
464GX_MOTION_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
void GxTypedObject
その他
Definition GxDefine.h:213
INTERPOLATE
補間タイプ
Definition GxMotionDefine.h:17
プロパティクラス
Definition GxProperty.h:48
プロパティテーブルクラス
Definition GxProperty.h:1641
リソース基底クラス
Definition GxResBase.h:23
メッシュコリジョンリソースクラス
Definition GxResCollisionMesh.h:19
コリジョンリソースクラス
Definition GxResCollisionObject.h:23
モデルリソースクラス
Definition GxResModel.h:20
IK用属性
Definition GxResMotionIK.h:69
IK用パラメーター
Definition GxResMotionIK.h:31
モーションパッケージリソース
Definition GxResMotionPackage.h:20
実行時型情報クラス
Definition GxRtti.h:154
背景ユニット基底クラス
Definition GxUnitBackgroundBase.h:20
モーションユニット
Definition GxUnitMotion.h:20
座標
Definition GxStruct.h:867
文字列型クラス
Definition GxString.h:18
32bitブーリアン
Definition GxDefine.h:173