18GX_MOTION_NAMESPACE_BEGIN()
21class GxResMotionIntegrateXml;
24class GxResMotionSequenceXml;
61class GxToolMotionIntegrate : public GxToolResourceEditBase
73 static constexpr u32 TOOL_HEIGHT = 300;
75 static constexpr u32 TOOL_WIDTH = 1000;
77 static constexpr u32 OFFSET_MAIN = 185;
79 static constexpr u32 OFFSET_MOTION_LIST = 300;
81 static constexpr u32 OFFSET_FILE_PATH = 90;
83 static constexpr u32 OFFSET_BUTTON_PANEL = 72;
85 static constexpr u32 OFFSET_SEQUENCE_LIST = 297;
87 static constexpr u32 OFFSET_SELECT_SEQUENCE_LIST = 35;
89 static constexpr u32 CREATE_BUTTON_WIDTH = 200;
91 static constexpr u32 CREATE_BUTTON_HEIGHT = 25;
94 class GxGuiFormControl;
95 class GxGuiPropertyTableMotion;
96 class GxGuiPropertyTableSequence;
119 GxSequenceParam(
void ) : _pTool(nullptr){}
121 constexpr void initialize( u32 lineNumber, GxToolMotionIntegrate* pTool , s32 sequenceNumber ){ _lineNumber = lineNumber; _pTool = pTool; _sequenceNumber = sequenceNumber; }
130 GX_FORCE_INLINE
void getName(
void*
const pValue)
133 *
static_cast<GxString**
>(pValue) = _pTool->getSequenceParamName(_sequenceNumber,_lineNumber);
136 GX_FORCE_INLINE
void getValue0(
void*
const pValue) { *
static_cast<u32*
>(pValue) = _pTool->getSequenceParamValue( _sequenceNumber, _lineNumber, 0); }
138 GX_FORCE_INLINE
void getValue1(
void*
const pValue) { *
static_cast<u32*
>(pValue) = _pTool->getSequenceParamValue( _sequenceNumber, _lineNumber, 1); }
140 GX_FORCE_INLINE
void getValue2(
void*
const pValue) { *
static_cast<u32*
>(pValue) = _pTool->getSequenceParamValue( _sequenceNumber, _lineNumber, 2); }
142 GX_FORCE_INLINE
void getValue3(
void*
const pValue) { *
static_cast<u32*
>(pValue) = _pTool->getSequenceParamValue( _sequenceNumber, _lineNumber, 3); }
145 GX_FORCE_INLINE
void setName(
const void*
const pValue)
147 _pTool->setSequenceParamName( _sequenceNumber, _lineNumber, (
static_cast<GxString*
>(
const_cast<void*
>(pValue)))->getString());
150 GX_FORCE_INLINE
void setValue0(
const void*
const pValue) { _pTool->setSequenceParamValue( _sequenceNumber, _lineNumber, 0, *
static_cast<u32*
>(
const_cast<void*
>(pValue))); }
152 GX_FORCE_INLINE
void setValue1(
const void*
const pValue) { _pTool->setSequenceParamValue( _sequenceNumber, _lineNumber, 1, *
static_cast<u32*
>(
const_cast<void*
>(pValue))); }
154 GX_FORCE_INLINE
void setValue2(
const void*
const pValue) { _pTool->setSequenceParamValue( _sequenceNumber, _lineNumber, 2, *
static_cast<u32*
>(
const_cast<void*
>(pValue))); }
156 GX_FORCE_INLINE
void setValue3(
const void*
const pValue) { _pTool->setSequenceParamValue( _sequenceNumber, _lineNumber, 3, *
static_cast<u32*
>(
const_cast<void*
>(pValue))); }
166 GxToolMotionIntegrate* _pTool;
178 GxToolMotionIntegrate(
void);
180 void cleanup(
void)
override;
182 b32 initialize(
void )
override;
191 void setResource(
GxResBase* pRes)
override;
193 constexpr GxResModel* getResourceModel(
void)
const {
return _pResModel; }
195 void setResourceModel(
GxResModel* pResModel );
197 constexpr GxResMotionPackage* getResourceMotionPackage(
void)
const {
return _pResMotionPackage; }
201 constexpr GxResMotionSequencePackageXml* getResourceMotionSequencePackageXml(
void)
const {
return _pResMotionSequencePackageXml; }
203 void setResourceMotionSequencePackageXml( GxResMotionSequencePackageXml* pResSequence );
205 virtual void updateSequenceMaxFrame(u32 motionNumber, u32 type = 0);
207 GX_FORCE_INLINE GxMotionNamesList& getMotionNamesList(
void) {
return _motionNamesList; }
212 void eventAddMotionNumber(
void);
214 void eventDeleteMotionNumber(u32 motionNumber);
216 void exportCurrentMotionScreenshots(
void);
218 void exportAllMotionScreenshots(
void);
221 void exportCurrentMotionScreenshots320x240(
void);
223 void exportAllMotionScreenshots320x240(
void);
228 void startScreenshotting(
void);
230 void screenshotCurrentFrame(
void);
232 void stopScreenshotting(
void);
236 void onCreate(
void)
override;
238 void onViewMaxExpand(
void)
override;
240 virtual void onViewMiddleExpand(
void);
242 void onViewMinExpand(
void)
override;
244 void update(
void)
override;
246 void postUpdate(
void)
override;
248 constexpr u32 getSelectSequenceNumber(
void)
const {
return _selectSeqNumber; }
252 constexpr GxUnitMotion* getModel(
void)
const {
return _pUnitModel; }
254 GxResMotionSequencePackageXml::GxData* getSelectSequencePackData(
void);
256 s32 getSelectMotionNumber(
void);
258 s32 getSelectMotionDataNumber(
void);
260 GxString getSelectMotionSequenceName(
void);
265 void changeMotion(s32 motionSequenceNumber, s32 motionNumber);
270 void eventButtonSequencePackage(
void);
272 void eventCreateSequencePackage(
void);
274 void eventButtonSequence(
void);
276 void eventCreateSequence(
void);
280 void save(
void)
override;
282 void convertAs( u32 attribute )
override;
284 void convert(
void )
override;
288 b32 createGuiFilePath(
void);
290 b32 createGuiMotionTable(
void);
292 void removeGuiMotionTable(
void);
294 b32 createGuiSequenceTable(
void);
296 b32 createGuiSequenceTimeLine(
void);
298 void removeGuiSequenceTable(
void);
302 void createUnitModel(
void );
304 void previewAll(
void );
306 GX_FORCE_INLINE
virtual void previewSequence0(
GxUnitMotion* , u32 , u32 , u32 , u32 , u32 ){}
308 GX_FORCE_INLINE
virtual void previewSequence1(
GxUnitMotion* , u32 , u32 , u32 , u32 , u32 ){}
310 GX_FORCE_INLINE
virtual void previewSequence2(
GxUnitMotion* , u32 , u32 , u32 , u32 , u32 ){}
312 GX_FORCE_INLINE
virtual void previewSequence3(
GxUnitMotion* , u32 , u32 , u32 , u32 , u32 ){}
316 virtual b32 isPreview(u32 oldFrame, u32 nowFrame, u32 maxFrame, f32 speed,
b32 loopFrag);
318 b32 isSequenceTrigger(u32 frame);
323 virtual GxGuiFormControl* createGuiFormControl(
void);
332 constexpr void getPropertyResModel(
void*
const pValue) { *
static_cast<GxResModel**
>(pValue) = _pResModel; }
334 void setPropertyResModel(
const void*
const pValue);
336 constexpr void getPropertyGxResMotionPackage(
void*
const pValue) { *
static_cast<GxResMotionPackage**
>(pValue) = _pResMotionPackage; }
338 void setPropertyGxResMotionPackage(
const void*
const pValue);
340 constexpr void getPropertyResMotionSequencePackageXml(
void*
const pValue) { *
static_cast<GxResMotionSequencePackageXml**
>(pValue) = _pResMotionSequencePackageXml; }
342 void setPropertyResMotionSequencePackageXml(
const void*
const pValue);
345 GxString* getSequenceParamName(s32 selectSequenceNumber,u32 lineNumber);
347 u32 getSequenceParamValue(s32 selectSequenceNumber,u32 lineNumber, u32 paramNumber);
349 void setSequenceParamName(s32 selectSequenceNumber,u32 lineNumber, GX_CSTR name);
351 void setSequenceParamValue(s32 selectSequenceNumber,u32 lineNumber, u32 paramNumber, u32 param);
353 void getPropertyInterpolateXTranslate(
const void* pValue);
355 void getPropertyInterpolateYTranslate(
const void* pValue);
357 void getPropertyInterpolateZTranslate(
const void* pValue);
359 void getPropertyInterpolatePosition(
const void* pValue);
361 void getPropertyInterpolateRotate(
const void* pValue);
363 void getPropertyInterpolateScale(
const void* pValue);
365 void getPropertyInterpolateLoop(
const void* pValue);
367 void setPropertyInterpolateXTranslate(
const void* pValue);
369 void setPropertyInterpolateYTranslate(
const void* pValue);
371 void setPropertyInterpolateZTranslate(
const void* pValue);
373 void setPropertyInterpolatePosition(
const void* pValue);
375 void setPropertyInterpolateRotate(
const void* pValue);
377 void setPropertyInterpolateScale(
const void* pValue);
379 void setPropertyInterpolateLoop(
const void* pValue);
383 GX_FORCE_INLINE
virtual GX_CSTR getSequenceResourceDisplayName0(
void){
return "リソース0"; }
385 GX_FORCE_INLINE
virtual GX_CSTR getSequenceResourceDisplayName1(
void){
return "リソース1"; }
387 GX_FORCE_INLINE
virtual GX_CSTR getSequenceResourceDisplayName2(
void){
return "リソース2"; }
389 GX_FORCE_INLINE
virtual GX_CSTR getSequenceResourceDisplayName3(
void){
return "リソース3"; }
392 GX_FORCE_INLINE
virtual GX_CSTR getSequenceParam0ColumnName0(
void){
return "param0"; }
394 GX_FORCE_INLINE
virtual GX_CSTR getSequenceParam0ColumnName1(
void){
return "param1"; }
396 GX_FORCE_INLINE
virtual GX_CSTR getSequenceParam0ColumnName2(
void){
return "param2"; }
398 GX_FORCE_INLINE
virtual GX_CSTR getSequenceParam0ColumnName3(
void){
return "param3"; }
401 GX_FORCE_INLINE
virtual GX_CSTR getSequenceParam1ColumnName0(
void){
return "param0"; }
403 GX_FORCE_INLINE
virtual GX_CSTR getSequenceParam1ColumnName1(
void){
return "param1"; }
405 GX_FORCE_INLINE
virtual GX_CSTR getSequenceParam1ColumnName2(
void){
return "param2"; }
407 GX_FORCE_INLINE
virtual GX_CSTR getSequenceParam1ColumnName3(
void){
return "param3"; }
410 GX_FORCE_INLINE
virtual GX_CSTR getSequenceParam2ColumnName0(
void){
return "param0"; }
412 GX_FORCE_INLINE
virtual GX_CSTR getSequenceParam2ColumnName1(
void){
return "param1"; }
414 GX_FORCE_INLINE
virtual GX_CSTR getSequenceParam2ColumnName2(
void){
return "param2"; }
416 GX_FORCE_INLINE
virtual GX_CSTR getSequenceParam2ColumnName3(
void){
return "param3"; }
419 GX_FORCE_INLINE
virtual GX_CSTR getSequenceParam3ColumnName0(
void){
return "param0"; }
421 GX_FORCE_INLINE
virtual GX_CSTR getSequenceParam3ColumnName1(
void){
return "param1"; }
423 GX_FORCE_INLINE
virtual GX_CSTR getSequenceParam3ColumnName2(
void){
return "param2"; }
425 GX_FORCE_INLINE
virtual GX_CSTR getSequenceParam3ColumnName3(
void){
return "param3"; }
429 constexpr GxGuiFormControl* getFormControl(
void)
const {
return _pFormControl; }
437 GxResMotionSequenceXml::GxLineData* _pLineData;
442 GxResMotionSequencePackageXml* _pResMotionSequencePackageXml;
443 GxMotionNamesList _motionNamesList;
445 u32 _selectSeqNumber;
451 GxGuiSplitter* _pSplitterMain;
452 GxGuiSplitter* _pSplitterFile;
453 GxGuiSplitter* _pSplitterSequence;
454 GxGuiFormControl* _pFormControl;
455 GxGuiPropertyTableMotion* _pMotionTable;
456 GxSeqEdit* _pFormSequence;
457 GxGuiTab* _pTabSequence;
461 b32 _screenshotAllMotions;
463 b32 _triggerScreenshotStart;
465 b32 _triggerScreenshotEnd;
466 b32 _autoscrollBeforeScreenshot;
467 b32 _useDummySequenceForScreenshot;
469 RECT _windowSizeBeforeScreenshot;
470 b32 _windowSizeIs320x240;
480class GxToolMotionIntegrate::GxGuiFormControl :
public GxGuiForm
488 GX_RTTI_CLASS(GxToolMotionIntegrate::GxGuiFormControl, GxGuiForm)
499 GxGuiFormControl(GxToolMotionIntegrate* pRoot =
nullptr);
501 b32 initialize(
void )
override;
510 void update(
void)
override;
512 void pushButtonPlay(
void);
514 GX_FORCE_INLINE
void pushButtonTop(
void) { addFrame(-999999.0f,
false); }
516 GX_FORCE_INLINE
void pushButtonBottom(
void) { addFrame(999999.0f,
false); }
518 GX_FORCE_INLINE
void pushButtonBack(
void) { addFrame(-1.0f, isLoop()); }
520 GX_FORCE_INLINE
void pushButtonForward(
void){ addFrame(1.0f, isLoop()); }
527 void addFrame(f32 addFrame,
b32 isLoop);
536 constexpr GxUnitMotion* getModel(
void){
if(!_pRoot){
return nullptr; }
return _pRoot->getModel(); }
539 GX_FORCE_INLINE
b32 isAutoScroll(
void)
const {
return _isAutoScroll; }
541 b32 isLoop(
void)
const;
543 GX_FORCE_INLINE
b32 isPlay(
void)
const {
return _isMotionPlaying; }
545 constexpr f32 getSpeed(
void)
const {
return _motionSpeed; }
547 constexpr void setSpeed(f32 speed) { _motionSpeed = speed;}
549 GX_FORCE_INLINE
b32 isSequence0Preview(
void)
const {
return _isSequence0Preview; }
551 GX_FORCE_INLINE
b32 isSequence1Preview(
void)
const {
return _isSequence1Preview; }
553 GX_FORCE_INLINE
b32 isSequence2Preview(
void)
const {
return _isSequence2Preview; }
555 GX_FORCE_INLINE
b32 isSequence3Preview(
void)
const {
return _isSequence3Preview; }
557 constexpr GxToolMotionIntegrate* getRootTool(
void)
const {
return _pRoot; }
565 GxToolMotionIntegrate* _pRoot;
566 GxGuiPropertyParameter* _pGuiParamSpeed;
567 GxGuiButton* _pButtonPlay;
568 GxGuiButton* _pButtonForward;
569 GxGuiButton* _pButtonBack;
570 GxGuiButton* _pButtonTop;
571 GxGuiButton* _pButtonBottom;
574 b32 _isMotionPlaying;
575 b32 _isSequence0Preview;
576 b32 _isSequence1Preview;
577 b32 _isSequence2Preview;
578 b32 _isSequence3Preview;
588class GxToolMotionIntegrate::GxGuiPropertyTableMotion :
public gx::core::GxGuiPropertyTable
595 GX_RTTI_CLASS( GxToolMotionIntegrate::GxGuiPropertyTableMotion, gx::core::GxGuiPropertyTable )
605 GxGuiPropertyTableMotion(
void );
607 GxGuiPropertyTableMotion( GxToolMotionIntegrate* pTool,
const GxProperty& property,
GxTypedObject* pObject, u32 index = 0,
b32 useFilter =
false, TYPE type = TYPE::HORIZON );
616 void onClick(
const GxPoint2& position, u32 button )
override;
618 void createPopUpMenu(
const GxPoint2& position);
620 void onClickSub( s32 selectedSequenceNb );
628 GxToolMotionIntegrate* _pRoot;
629 s32 _oldMotionDataNumber;
638class GxToolMotionIntegrate::GxGuiPropertyTableSequence :
public gx::core::GxGuiPropertyTable
645 GX_RTTI_CLASS( GxToolMotionIntegrate::GxGuiPropertyTableSequence, gx::core::GxGuiPropertyTable )
655 GxGuiPropertyTableSequence(
void );
657 GxGuiPropertyTableSequence(
const GxProperty& property,
GxTypedObject* pObject, u32 index = 0,
b32 useFilter =
false, TYPE type = TYPE::HORIZON );
666 constexpr GxGuiForm* getValueForm(
void )
const {
return _pGuiValueForm; }
675class GxToolMotionIntegrate::GxSeqEdit :
public GxGuiTimeLine
682 GX_RTTI_CLASS(GxToolMotionIntegrate::GxSeqEdit, GxGuiTimeLine)
687 static constexpr u32 FRAME_WIDTH = 10;
689 static constexpr u32 FRAME_HEIGHT = 19;
701 GxSeqEdit(GxToolMotionIntegrate* pParentTool, GxResMotionSequenceXml* pRes);
703 void cleanup(
void)
override;
712 void update (
void)
override;
714 void onDraw (
void)
override;
716 void onMouseDown(
const GxPoint2 & position, u32 button)
override;
718 void onMouseUp (
const GxPoint2 & position, u32 button)
override;
727 void setResource (GxResMotionSequenceXml* pRes);
729 GX_FORCE_INLINE
void setUseAutoScroll (
b32 useAutoScroll){ _isAutoScroll = useAutoScroll; }
731 GX_FORCE_INLINE
b32 getUseAutoScroll (
void)
const {
return _isAutoScroll; }
733 void adjustScroll (f32 checkFrame);
735 constexpr f32 getFrameMax (
void)
const {
return _frameMax; }
737 constexpr f32 getFrameNow (
void)
const {
return _frameNow; }
739 void setFrameNow (f32 frameNow,
b32 isLoop);
741 b32 getSequence (u32 lineNumber, u32 frameNow);
743 void setSequence (u32 lineNumber, u32 frameNow,
b32 value);
751 GxToolMotionIntegrate* _pParentTool;
752 GxResMotionSequenceXml* _pResource;
755 s32 _clickLineNumber;
756 u32 _previousSelectedFrame;
760 b32 _isMouseButtonDown;
765GX_MOTION_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
void GxTypedObject
その他
Definition GxDefine.h:213
オブジェクト基底クラス
Definition GxBase.h:88
GxClassBase用連結リストクラス
Definition GxListClassBase.h:18
static GX_FORCE_INLINE T getClamp(const T value, const T min, const T max)
最小値・最大値で切り落とす
Definition GxMath.h:170
プロパティクラス
Definition GxProperty.h:48
プロパティテーブルクラス
Definition GxProperty.h:1641
リソース基底クラス
Definition GxResBase.h:23
モデルリソースクラス
Definition GxResModel.h:20
モーションリソース
Definition GxResMotion.h:18
モーションパッケージリソース
Definition GxResMotionPackage.h:20
モーションシーケンスリソース
Definition GxResMotionSequence.h:20
static constexpr u32 SEQUENCE_COUNT
シーケンスファイル個数
Definition GxResMotionSequencePackage.h:31
実行時型情報クラス
Definition GxRtti.h:154
モーションユニット
Definition GxUnitMotion.h:20
座標
Definition GxStruct.h:867
文字列型クラス
Definition GxString.h:18
32bitブーリアン
Definition GxDefine.h:173