14GX_MOTION_NAMESPACE_BEGIN()
19class GxToolMotionBlend : public GxToolResourceEditBase
31 static constexpr u32 OFFSET_MOTION_LIST = 230;
33 static constexpr u32 OFFSET_FILE_PATH = 70;
35 class GxGuiFormControl;
36 class GxGuiPropertyTableMotion;
45 GxToolMotionBlend(
void);
47 void cleanup(
void)
override;
49 b32 initialize(
void )
override;
58 void save(
void)
override;
60 void load(u32 attribute)
override;
62 void convertAs( u32 attribute )
override;
64 void convert(
void )
override;
66 void setResource(
GxResBase* pRes)
override;
68 void setResourceModel(
GxResModel* pResModel );
72 void setResourceMotionBlendXml( GxResMotionBlendXml* pResMotionBlend );
75 void updateNeedModule(
void);
78 void onCreate(
void)
override;
80 void update(
void)
override;
89 void createUnitModel(
void);
91 void changeMotion(s32 motionNumber);
93 b32 createGuiFilePath(
void);
95 void createGuiMotionTable(
void);
97 void eventButtonCreateBlendResource(
void);
99 void createBlendResource(
void);
108 constexpr void getPropertyResModel(
void*
const pValue) { *
static_cast<GxResModel**
>(pValue) = _pResModel; }
110 void setPropertyResModel(
const void*
const pValue);
112 constexpr void getPropertyGxResMotionPackage(
void*
const pValue) { *
static_cast<GxResMotionPackage**
>(pValue) = _pResMotionPackage; }
114 void setPropertyGxResMotionPackage(
const void*
const pValue);
116 constexpr void getPropertyResMotionBlendXml(
void*
const pValue) { *
static_cast<GxResMotionBlendXml**
>(pValue) = _pResMotionBlendXml; }
118 void setPropertyResMotionBlendXml(
const void*
const pValue);
120 void getPropertyInterpolateXTranslate(
const void* pValue);
122 void getPropertyInterpolateYTranslate(
const void* pValue);
124 void getPropertyInterpolateZTranslate(
const void* pValue);
126 void getPropertyInterpolatePosition(
const void* pValue);
128 void getPropertyInterpolateRotate(
const void* pValue);
130 void getPropertyInterpolateScale(
const void* pValue);
132 void getPropertyInterpolateLoop(
const void* pValue);
134 void setPropertyInterpolateXTranslate(
const void* pValue);
136 void setPropertyInterpolateYTranslate(
const void* pValue);
138 void setPropertyInterpolateZTranslate(
const void* pValue);
140 void setPropertyInterpolatePosition(
const void* pValue);
142 void setPropertyInterpolateRotate(
const void* pValue);
144 void setPropertyInterpolateScale(
const void* pValue);
146 void setPropertyInterpolateLoop(
const void* pValue);
149 constexpr GxUnitMotion* getModel(
void)
const {
return _pUnitModel; }
151 constexpr GxResMotionBlendXml* getResMotionBlendXml(
void)
const {
return _pResMotionBlendXml; }
153 GX_FORCE_INLINE GxMotionNamesList* getMotionNamesList(
void){
return &_motionNamesList; }
155 constexpr GxGuiFormControl* getFormControl(
void)
const {
return _pFormControl; }
157 constexpr GxGuiPropertyTableMotion* getMotionTable(
void)
const {
return _pMotionTable; }
168 GxResMotionBlendXml* _pResMotionBlendXml;
169 GxMotionNamesList _motionNamesList;
171 GxGuiSplitter* _pSplitterMain;
172 GxGuiSplitter* _pSplitterFile;
173 GxGuiFormControl* _pFormControl;
174 GxGuiPropertyTableMotion* _pMotionTable;
184class GxToolMotionBlend::GxGuiFormControl :
public GxGuiForm
192 GX_RTTI_CLASS(GxToolMotionBlend::GxGuiFormControl, GxGuiForm)
203 GxGuiFormControl(GxToolMotionBlend* pRoot =
nullptr);
205 b32 initialize(
void )
override;
214 void createMotionGui(
void);
216 void update(
void)
override;
218 void pushButtonPlay(
void);
224 void addFrame(f32 addFrame);
226 void pushButtonTop(
void);
228 void pushButtonBottom(
void);
230 void pushButtonBack(
void);
232 void pushButtonForward(
void);
241 constexpr GxUnitMotion* getModel(
void)
const {
if(!_pRoot){
return nullptr; }
return _pRoot->getModel(); }
243 GX_FORCE_INLINE
b32 isPlay(
void)
const {
return _isMotionPlaying; }
245 constexpr s32 getBaseMotionNumber (
void)
const {
return _baseMotionNumber; }
247 constexpr s32 getTargetMotionNumber (
void)
const {
return _targetMotionNumber; }
249 GX_FORCE_INLINE
b32 isDrawModel(
void)
const {
return _isDrawModel; }
251 GX_FORCE_INLINE
b32 isDrawJointLine(
void)
const {
return _isDrawJointLine; }
253 GX_FORCE_INLINE
b32 isDrawJointName(
void)
const {
return _isDrawJointName; }
261 GxToolMotionBlend* _pRoot;
262 GxGuiButton* _pButtonPlay;
264 b32 _isMotionPlaying;
265 s32 _baseMotionNumber;
266 s32 _targetMotionNumber;
267 GxGuiPropertyComboBoxEnum* _pGuiEnumStartMotion;
268 GxGuiPropertyComboBoxEnum* _pGuiEnumBlendMotion;
270 b32 _isDrawJointLine;
271 b32 _isDrawJointName;
279class GxToolMotionBlend::GxGuiPropertyTableMotion :
public gx::core::GxGuiPropertyTable
286 GX_RTTI_CLASS( GxToolMotionBlend::GxGuiPropertyTableMotion, gx::core::GxGuiPropertyTable )
297 GxGuiPropertyTableMotion(
void ) : _pRoot(nullptr), _pSelectObject(nullptr){}
300 GxGuiPropertyTableMotion( GxToolMotionBlend* pTool,
const GxProperty& property,
GxTypedObject* pObject, u32 index = 0,
b32 useFilter =
false, TYPE type = TYPE::HORIZON );
309 GX_FORCE_INLINE
b32 isChange(
void ){
return updateObjectList(); }
311 GX_FORCE_INLINE
b32 isChangeBlendParameterCount(
void)
const {
return _isChangeBlendParameterCount; }
313 constexpr void resetIsChangeBlendParameterCount(
void){ _isChangeBlendParameterCount =
false; }
315 constexpr s32 getSelectBlendMotion(
void){
return _pSelectObject ?
static_cast<s32
>(_pSelectObject->_targetMotionNumber) : -1; }
324 void onClick(
const GxPoint2& position, u32 button )
override;
326 void createPopUpMenu(
const GxPoint2& position);
328 void eventDeleteInterpolationSettings(
void);
338 GxToolMotionBlend* _pRoot;
340 b32 _isChangeBlendParameterCount;
345GX_MOTION_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
void GxTypedObject
その他
Definition GxDefine.h:213
プロパティクラス
Definition GxProperty.h:48
プロパティテーブルクラス
Definition GxProperty.h:1641
リソース基底クラス
Definition GxResBase.h:23
モデルリソースクラス
Definition GxResModel.h:20
ブレンド用パラメーター
Definition GxResMotionBlend.h:31
BLEND_TYPE
ブレンドタイプ
Definition GxResMotionBlend.h:48
モーションパッケージリソース
Definition GxResMotionPackage.h:20
実行時型情報クラス
Definition GxRtti.h:154
モーションユニット
Definition GxUnitMotion.h:20
座標
Definition GxStruct.h:867
文字列型クラス
Definition GxString.h:18
32bitブーリアン
Definition GxDefine.h:173