14GX_MOTION_NAMESPACE_BEGIN()
19class GxToolMotionInterpolationNew : public GxToolResourceEditBase
31 static constexpr u32 OFFSET_MOTION_LIST = 635;
33 static constexpr u32 OFFSET_FILE_PATH = 70;
35 static constexpr u32 OFFSET_BUTTON_PANEL = 135;
37 static constexpr u32 OFFSET_FILTER_PANEL = 160;
39 static constexpr u32 MASK_FILTER =
static_cast<u32
>(0x01) << 15;
44 class UnitPreviewCharacter;
45 class GxGuiFormControl;
46 class GxGuiPropertyTableMotion;
47 class GxGuiPropertyTableFilter;
48 class GxGuiPropertyTableFilterPreview;
57 GxToolMotionInterpolationNew(
void);
59 void cleanup(
void)
override;
61 b32 initialize(
void )
override;
70 void save(
void)
override;
72 void convertAs( u32 attribute )
override;
74 void convert(
void )
override;
76 void setResource(
GxResBase* pRes)
override;
78 void setResourceModel(
GxResModel* pResModel );
82 void setResourceMotionInterpolationSettingsXml( GxResMotionInterpolationSettingsXml* pResInterpolation );
84 void updateMotionNumberFromInterpolateMode(
void);
86 void updateInterpolateModeFromMotionNumber(
void);
90 void onCreate(
void)
override;
92 void update(
void)
override;
101 void createUnitModel(
void);
103 void changeMotion(s32 motionNumber);
105 b32 createGuiFilePath(
void);
107 void createGuiMotionTable(
void);
109 void createGuiFilterTable(
void);
111 void eventButtonCreateInterpolationSetting(
void);
113 void createInterpolationSettingsResource(
void);
115 void updateFilterMotionNameListForMotionTable(
void);
117 void clearMaskFliterBit(
void);
126 constexpr void getPropertyResModel(
void*
const pValue) { *
static_cast<GxResModel**
>(pValue) = _pResModel; }
128 void setPropertyResModel(
const void*
const pValue);
130 constexpr void getPropertyGxResMotionPackage(
void*
const pValue) { *
static_cast<GxResMotionPackage**
>(pValue) = _pResMotionPackage; }
132 void setPropertyGxResMotionPackage(
const void*
const pValue);
134 constexpr void getPropertyResMotionInterpolationSettingsXml(
void*
const pValue) { *
static_cast<GxResMotionInterpolationSettingsXml**
>(pValue) = _pResMotionInterpolationSettingsXml; }
136 void setPropertyResMotionInterpolationSettingsXml(
const void*
const pValue);
138 void getPropertyResMotionInterpolationSettingDefault(
void*
const pValue);
140 void setPropertyResMotionInterpolationSettingDefault(
const void*
const pValue);
142 void getPropertyInterpolateXTranslate(
const void* pValue);
144 void getPropertyInterpolateYTranslate(
const void* pValue);
146 void getPropertyInterpolateZTranslate(
const void* pValue);
148 void getPropertyInterpolatePosition(
const void* pValue);
150 void getPropertyInterpolateRotate(
const void* pValue);
152 void getPropertyInterpolateScale(
const void* pValue);
154 void setPropertyInterpolateXTranslate(
const void* pValue);
156 void setPropertyInterpolateYTranslate(
const void* pValue);
158 void setPropertyInterpolateZTranslate(
const void* pValue);
160 void setPropertyInterpolatePosition(
const void* pValue);
162 void setPropertyInterpolateRotate(
const void* pValue);
164 void setPropertyInterpolateScale(
const void* pValue);
168 constexpr GxUnitMotion* getModel(
void)
const {
return _pUnitModel; }
170 constexpr GxResMotionInterpolationSettingsXml* getResMotionInterpolationSettingsXml(
void){
return _pResMotionInterpolationSettingsXml; }
172 GX_FORCE_INLINE GxMotionNamesList* getMotionNamesList(
void){
return &_motionNamesList; }
174 constexpr GxGuiFormControl* getFormContrl(
void){
return _pFormControl; }
176 constexpr GxGuiPropertyTableMotion* getMotionTable(
void){
return _pMotionTable; }
178 constexpr GX_ENUM* getMotionFilterNameEnum(
void){
return _motionFilterNameEnum; }
180 constexpr u32 getMotionFilterNameCount(
void){
return _motionFilterNameCount; }
193 GxResMotionInterpolationSettingsXml* _pResMotionInterpolationSettingsXml;
194 GxMotionNamesList _motionNamesList;
196 GX_ENUM _motionFilterNameEnum[MOTION_FILTER_NAME_MAX_COUNT];
197 u32 _motionFilterNameCount;
199 GxGuiSplitter* _pSplitterFile;
200 GxGuiSplitter* _pSplitterFilter;
201 GxGuiSplitter* _pSplitterFilterName;
202 GxGuiFormControl* _pFormControl;
203 GxGuiPropertyTableMotion* _pMotionTable;
204 GxGuiPropertyTableFilter* _pFilterTable;
205 GxGuiPropertyTableFilterPreview* _pFormFilterPreview;
214class GxToolMotionInterpolationNew::GxGuiFormControl :
public GxGuiForm
222 GX_RTTI_CLASS(GxToolMotionInterpolationNew::GxGuiFormControl, GxGuiForm)
233 GxGuiFormControl(GxToolMotionInterpolationNew* pRoot =
nullptr);
235 b32 initialize(
void )
override;
244 void onDraw(
void )
override;
246 void createMotionGui(
void);
248 void update(
void)
override;
250 void pushButtonPlay(
void);
256 void addFrame(f32 addFrame);
258 void eventAddInterpolationSettings(
void);
260 void pushButtonTop(
void);
262 void pushButtonBottom(
void);
264 void pushButtonBack(
void);
266 void pushButtonForward(
void);
275 constexpr GxUnitMotion* getModel(
void)
const {
if(!_pRoot){
return nullptr; }
return _pRoot->getModel(); }
277 GX_FORCE_INLINE
b32 isPlay(
void)
const {
return _isMotionPlaying; }
279 constexpr f32 getDefaultMotionInterpFrame(
void)
const {
return _defaultMotionInterpolateFrame; }
281 constexpr void setDefaultMotionInterpFrame(f32 defaultMotionInterpolateFrame){ _defaultMotionInterpolateFrame = defaultMotionInterpolateFrame; }
283 constexpr INTERPOLATE getDefaultMotionInterpType(
void)
const {
return _defaultMotionInterpolateType; }
285 constexpr void setDefaultMotionInterpType(
INTERPOLATE defaultMotionInterpolateType){ _defaultMotionInterpolateType = defaultMotionInterpolateType; }
287 constexpr f32 getDefaultMotionInterpCurvaturep(
void)
const {
return _defaultMotionInterpolateCurvaturep; }
289 constexpr void setDefaultMotionInterpCurvaturep(f32 defaultMotionInterpolateCurvaturep){ _defaultMotionInterpolateCurvaturep = defaultMotionInterpolateCurvaturep; }
291 constexpr u32 getStartMotionNumber(
void)
const {
return _startMotionNumber; }
293 constexpr void setStartMotionNumber(u32 startMotionNumber){ _startMotionNumber = startMotionNumber; }
295 constexpr u32 getTargetMotionNumber(
void)
const {
return _targetMotionNumber; }
297 constexpr void setTargetMotionNumber(u32 targetMotionNumber){ _targetMotionNumber = targetMotionNumber; }
299 GX_FORCE_INLINE
b32 isRequestRemakeTableMotion(
void)
const {
return _isRequestRemakeTableMotion; }
301 constexpr void resetRequestRemakeTableMotion(
void){ _isRequestRemakeTableMotion =
false; }
309 GxToolMotionInterpolationNew* _pRoot;
310 GxGuiPropertyComboBoxEnum* _pGuiEnumStartMotion;
311 GxGuiPropertyComboBoxEnum* _pGuiEnumTargetMotion;
312 GxGuiButton* _pButtonPlay;
314 b32 _isMotionPlaying;
315 f32 _defaultMotionInterpolateFrame;
317 f32 _defaultMotionInterpolateCurvaturep;
318 u32 _startMotionNumber;
319 u32 _targetMotionNumber;
320 b32 _isRequestRemakeTableMotion;
328class GxToolMotionInterpolationNew::GxGuiPropertyTableMotion :
public gx::core::GxGuiPropertyTable
335 GX_RTTI_CLASS( GxToolMotionInterpolationNew::GxGuiPropertyTableMotion, gx::core::GxGuiPropertyTable )
346 GxGuiPropertyTableMotion(
void ) : _pRoot(nullptr), _pSelectObject(nullptr){}
349 GxGuiPropertyTableMotion( GxToolMotionInterpolationNew* pTool,
const GxProperty& property,
GxTypedObject* pObject, u32 index = 0,
b32 useFilter =
false, TYPE type = TYPE::HORIZON );
358 GX_FORCE_INLINE
b32 isChange(
void ){
return updateObjectList(); }
360 GX_FORCE_INLINE
b32 isRequestRemake(
void)
const {
return _isRequestRemake; }
362 constexpr void resetRequestRemake(
void){ _isRequestRemake =
false; }
366 constexpr s32 getSelectStartMotion(
void)
const {
return _pSelectObject ?
static_cast<s32
>(_pSelectObject->getStartMotionNumber()) : -1; }
368 constexpr s32 getSelectTargetMotion(
void)
const {
return _pSelectObject ?
static_cast<s32
>(_pSelectObject->getTargetMotionNumber()) : -1; }
377 void onClick(
const GxPoint2& position, u32 button )
override;
379 void createPopUpMenu(
const GxPoint2& position);
381 void eventDeleteInterpolationSettings(
void);
389 GxToolMotionInterpolationNew* _pRoot;
391 b32 _isRequestRemake;
399class GxToolMotionInterpolationNew::GxGuiPropertyTableFilter :
public gx::core::GxGuiPropertyTable
406 GX_RTTI_CLASS( GxToolMotionInterpolationNew::GxGuiPropertyTableFilter, gx::core::GxGuiPropertyTable )
417 GxGuiPropertyTableFilter(
void ) : _pRoot(nullptr), _pSelectObject(nullptr), _pOldSelectObject(nullptr){}
420 GxGuiPropertyTableFilter( GxToolMotionInterpolationNew* pTool,
const GxProperty& property,
GxTypedObject* pObject , u32 index = 0,
b32 useFilter =
false, TYPE type = TYPE::HORIZON );
429 void update(
void)
override;
432 void onClick(
const GxPoint2& position, u32 button )
override;
434 void createPopUpMenu(
const GxPoint2& position);
436 void eventAddFilterSettings(
void);
438 void eventDeleteFilterSettings(
void);
440 void eventAddMotionToFilter(u32 motionNumber);
442 void eventDeleteMotionToFilter(u32 motionNumber);
451 GX_FORCE_INLINE
b32 isRename(
void ){
return _isRename; }
453 GX_FORCE_INLINE
b32 isRequestRemakeOwn(
void){
return _isRequestRemakeOwn; }
455 constexpr void resetRequestRemakeOwn(
void){ _isRequestRemakeOwn =
false; }
457 GX_FORCE_INLINE
b32 isRequestRemakeTableMotion(
void){
return _isRequestRemakeTableMotion; }
459 constexpr void resetRequestRemakeTableMotion(
void){ _isRequestRemakeTableMotion =
false; }
461 constexpr void setMotionNumberForFilter(u32 motionNumberForFilter){ _motionNumberForFilter = motionNumberForFilter; }
463 constexpr u32 getMotionNumberForFilter(
void){
return _motionNumberForFilter; }
473 GxToolMotionInterpolationNew* _pRoot;
475 u32 _motionNumberForFilter;
476 b32 _isRequestRemakeOwn;
477 b32 _isRequestRemakeTableMotion;
488class GxToolMotionInterpolationNew::GxGuiPropertyTableFilterPreview :
public GxGuiForm
495 GX_RTTI_CLASS( GxToolMotionInterpolationNew::GxGuiPropertyTableFilterPreview, GxGuiForm )
506 GxGuiPropertyTableFilterPreview(
void ) : _pRoot(nullptr), _pSelectData(nullptr){}
508 GxGuiPropertyTableFilterPreview( GxToolMotionInterpolationNew* pRoot);
517 void onDraw(
void )
override;
519 void onSize(
const GxSize& size )
override;
536 GxToolMotionInterpolationNew* _pRoot;
543GX_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 GxArray.h:18
static constexpr u32 VALUE_512
512
Definition GxMath.h:128
モーションの補間設定を保管するクラス
Definition GxMotionInterpolationSetting.h:19
プロパティクラス
Definition GxProperty.h:48
プロパティテーブルクラス
Definition GxProperty.h:1641
リソース基底クラス
Definition GxResBase.h:23
モデルリソースクラス
Definition GxResModel.h:20
フィルター
Definition GxResMotionInterpolationSettings.h:32
モーションパッケージリソース
Definition GxResMotionPackage.h:20
実行時型情報クラス
Definition GxRtti.h:154
モーションユニット
Definition GxUnitMotion.h:20
GUI用
Definition GxDefine.h:194
座標
Definition GxStruct.h:867
サイズ
Definition GxStruct.h:730
文字列型クラス
Definition GxString.h:18
32bitブーリアン
Definition GxDefine.h:173