OROCHI
 
Loading...
Searching...
No Matches
GxModUnitMotionSequence.h
Go to the documentation of this file.
1//===========================================================================
12//===========================================================================
13#pragma once
14
15GX_MOTION_NAMESPACE_BEGIN()
16
17//===========================================================================
19//===========================================================================
21{
22 //-------------------------------------------------------------
24 //-------------------------------------------------------------
26public:
27 // RTTIプロパティ
29 // new, delete定義
30 GX_OPERATOR_NEW_DELETE( GxAllocatorList::ALLOCATOR_TYPE::UNIT )
31 // ClassBaseReference継承禁止処理
33
34 class Play;
35
37 //-----------------------------------------------------------
39 //-----------------------------------------------------------
41public:
45 ~GxModUnitMotionSequence(void) override;
47 void clear(void);
49 b32 initialize(GxResMotionSequencePackage* pResMotionSequencePackage, GxMotionPlayer* pMotion);
51 b32 initialize(GxMotionPlayer* pMotion, u32 playCount = 1);
52
54 //-----------------------------------------------------------
56 //-----------------------------------------------------------
58public:
60 b32 setup(void) override;
62 void postAsyncUpdate(void) override;
64 b32 set(u32 motionNumber, f32 curFrame, f32 maxFrame, u32 playNumber = 0);
65
67 //-----------------------------------------------------------
69 //-----------------------------------------------------------
71
73 u32* getSequenceAll(u32 index, u32 playNumber = 0);
75 u32* getSequenceOldAll(u32 index, u32 playNumber = 0);
77 u32* getTriggerSequenceAll(u32 index, u32 playNumber = 0);
79 u32* getTriggerSequenceOldAll(u32 index,u32 playNumber = 0);
80
82 b32 getSequence(u32 lineNumber, u32 index, u32 playNumber = 0);
84 b32 getSequenceOld(u32 lineNumber, u32 index, u32 playNumber = 0);
86 b32 getTriggerSequence(u32 lineNumber, u32 index, u32 playNumber = 0);
88 b32 getTriggerSequenceOld(u32 lineNumber, u32 index,u32 playNumber = 0);
89
91 b32 getSequenceFromFrame(u32 lineNumber, u32 sequenceIndex, u32 playNumber, u32 frame) const;
93 u32 getFramePre(u32 playNumber) const;
95 u32 getFrameNow(u32 playNumber) const;
97 u32 getFrameMax(u32 playNumber) const;
98
100 u32 getSequenceParam(u32 lineNumber, u32 index, u32 playNumber = 0);
102 u32 getSequenceParam0(u32 lineNumber, u32 index, u32 playNumber = 0);
104 u32 getSequenceParam1(u32 lineNumber, u32 index, u32 playNumber = 0);
106 u32 getSequenceParam2(u32 lineNumber, u32 index, u32 playNumber = 0);
108 u32 getSequenceParam3(u32 lineNumber, u32 index, u32 playNumber = 0);
109
111 u32 getMotionDataNumberFromPlayNumber(u32 playNumber);
113 u32 getMotionDataNumberFromMotionNumber(u32 motionNumber);
114
119 constexpr s32 getCurrentMotionSequenceNumber(void) const { return _currentMotionSequenceNumber; }
121 constexpr void setCurrentMotionSequenceNumber(s32 number) { _currentMotionSequenceNumber = number; }
122
123public:
125 constexpr u32 getPlayCount(void) const { return _playCount; }
127 Play* getPlay(u32 playNumber) const;
129 void setResMotionSequencePackage( GxResMotionSequencePackage* pResMotionSequencePackage);
131 constexpr GxResMotionSequencePackage* getResMotionSequencePackage(void) const { return _pResMotionSequencePackage; }
133 void getPropertyResourceMotionSequencePackage(void* const pValue);
135 void setPropertyResourceMotionSequencePackage(const void* const pValue);
136
138 //-----------------------------------------------------------
140 //-----------------------------------------------------------
142private:
143 GxMotionPlayer* _pMotion;
144 GxResMotionSequencePackage* _pResMotionSequencePackage;
145 Play* _pPlay;
146 u32 _playCount;
147
148 s32 _currentMotionSequenceNumber;
149 s32 _oldMotionNumber;
150
152};
153
154//===========================================================================
156//===========================================================================
158{
159 //-------------------------------------------------------------
161 //-------------------------------------------------------------
163public:
165
166 class PlaySeq;
167
169 //-----------------------------------------------------------
171 //-----------------------------------------------------------
173
175 Play(void);
177 ~Play(void) override;
180
182 //-----------------------------------------------------------
184 //-----------------------------------------------------------
186
188 b32 set( GxResMotionSequencePackage* pResMotionSequencePackage, u32 motionNumber, f32 currentFrame, f32 maxFrame);
189
191 constexpr GxResMotionSequence const* getResourceSequence(u32 index) const { return (index < GxResMotionSequenceQuadruple::SEQUENCE_COUNT) ? _pResMotSequence[index] : nullptr; }
193 constexpr u32* getSequenceAll(u32 index) const { return (index < GxResMotionSequenceQuadruple::SEQUENCE_COUNT) ? _pSequence[index] : 0; }
195 constexpr u32* getSequenceOldAll(u32 index) const { return (index < GxResMotionSequenceQuadruple::SEQUENCE_COUNT) ? _pSequenceOld[index] : 0; }
197 constexpr u32* getTriggerSequenceAll(u32 index) const { return (index < GxResMotionSequenceQuadruple::SEQUENCE_COUNT) ? _pTriggerSequence[index] : 0; }
199 constexpr u32* getTriggerSequenceOldAll(u32 index) const { return (index < GxResMotionSequenceQuadruple::SEQUENCE_COUNT) ? _pTriggerSequenceOld[index] : 0; }
200
202 u32 getSequenceParam(u32 lineNumber, u32 index) const;
204 u32 getSequenceParam0(u32 lineNumber, u32 index) const;
206 u32 getSequenceParam1(u32 lineNumber, u32 index) const;
208 u32 getSequenceParam2(u32 lineNumber, u32 index) const;
210 u32 getSequenceParam3(u32 lineNumber, u32 index) const;
211
213 constexpr u32 getMotionNumber(void) const { return _motionNumber; }
215 constexpr f32 getMaxFrame(void) const { return _maxFrame; }
217 constexpr u32 getMotionDataNumber(void) const { return _motionDataNumber; }
219 constexpr u32 getPreFrame(void) const { return _preFrame; }
221 constexpr u32 getNowFrame(void) const { return _nowFrame; }
223 u32 getSequenceFromFrame(u32 sequenceIndex, s32 frame) const;
224
226 void initializeSequence(f32 currentFrame);
228 void updateSequence(f32 currentFrame, f32 speed, f32 startFrame);
230 const GxResMotionSequence::GxDataHeader* getResSequenceDataHeader(u32 lineNumber, u32 index) const;
231
233 //-----------------------------------------------------------
235 //-----------------------------------------------------------
237private:
238 GxModUnitMotionSequence* _pParent;
239
240 // const使いたいがそうするとリソースリファレンス使えない
244 u32* _pTriggerSequence[GxResMotionSequenceQuadruple::SEQUENCE_COUNT];
245 u32* _pTriggerSequenceOld[GxResMotionSequenceQuadruple::SEQUENCE_COUNT];
246 u32 _motionNumber;
247 u32 _motionDataNumber;
248 f32 _maxFrame;
249 PlaySeq* _pPlaySequence;
250 s32 _preFrame;
251 s32 _nowFrame;
252
254};
255
256//===========================================================================
258//===========================================================================
260{
261 //-------------------------------------------------------------
263 //-------------------------------------------------------------
265public:
266 // RTTI定義
268
269
270 //-----------------------------------------------------------
272 //-----------------------------------------------------------
274
276 class PlaySeqSub : public GxClassBase
277 {
278 //-------------------------------------------------------------
280 //-------------------------------------------------------------
282 public:
283 // RTTI定義
285
286
287 //-----------------------------------------------------------
289 //-----------------------------------------------------------
291
293 PlaySeqSub(void);
295 ~PlaySeqSub(void) override;
296
298 //-----------------------------------------------------------
300 //-----------------------------------------------------------
302
304 void set(const GxResMotionSequence::GxDataHeader* pDataHeader, const s32* pDataTop, s32 frameNow);
306 void get(u32* pSequence, s32 frameOld, s32 frameNow, s32 frameAdd);
307
309 //-----------------------------------------------------------
311 //-----------------------------------------------------------
313 protected:
315 u32 search(s32 frameOld, s32 frameNow, s32 frameAdd);
317 b32 isIntersect(const s32* pData, s32 frameStart, s32 frameEnd);
319 GX_FORCE_INLINE b32 isIntersectRev(const s32* pData, s32 frameStart, s32 frameEnd);
320
322 //-----------------------------------------------------------
324 //-----------------------------------------------------------
326 protected:
328 const s32* _pDataTop;
329 const s32* _pDataEnd;
331 };
333
334 //-----------------------------------------------------------
336 //-----------------------------------------------------------
338
340 PlaySeq(void);
342 ~PlaySeq(void) override;
344
345 //-----------------------------------------------------------
347 //-----------------------------------------------------------
349
351 void set(GxResMotionSequence* pResMotionSequence, s32 frameNow);
353 void get(u32* pSequence, s32 frameOld, s32 frameNow, s32 frameAdd);
354
356 //-----------------------------------------------------------
358 //-----------------------------------------------------------
360protected:
362
364};
365
366GX_MOTION_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
オブジェクト基底クラス
Definition GxBase.h:88
ユニットモジュール基礎クラス
Definition GxModUnitBase.h:22
モーション位置情報再生サブクラス
Definition GxModUnitMotionSequence.h:277
const s32 * _pDataTop
シーケンスデータ先頭
Definition GxModUnitMotionSequence.h:328
const s32 * _pDataEnd
Definition GxModUnitMotionSequence.h:329
const GxResMotionSequence::GxDataHeader * _pDataHeader
シーケンスデータ
Definition GxModUnitMotionSequence.h:327
モーションシーケンス再生クラス
Definition GxModUnitMotionSequence.h:260
~PlaySeq(void) override
デストラクタ
Definition GxModUnitMotionSequence.cpp:943
PlaySeq(void)
コンストラクタ
Definition GxModUnitMotionSequence.cpp:935
void set(GxResMotionSequence *pResMotionSequence, s32 frameNow)
モーションシーケンスリソースの設定
Definition GxModUnitMotionSequence.cpp:953
void get(u32 *pSequence, s32 frameOld, s32 frameNow, s32 frameAdd)
モーションシーケンスの取得
Definition GxModUnitMotionSequence.cpp:978
PlaySeqSub * _pPlaySequenceSub
シーケンス
Definition GxModUnitMotionSequence.h:361
モーション再生クラス
Definition GxModUnitMotionSequence.h:158
void updateSequence(f32 currentFrame, f32 speed, f32 startFrame)
シーケンス更新
Definition GxModUnitMotionSequence.cpp:742
constexpr u32 * getSequenceAll(u32 index) const
全ラインのシーケンスを取得
Definition GxModUnitMotionSequence.h:193
~Play(void) override
デストラクタ
Definition GxModUnitMotionSequence.cpp:631
u32 getSequenceParam0(u32 lineNumber, u32 index) const
シーケンスパラメータ0を取得
Definition GxModUnitMotionSequence.cpp:852
constexpr u32 getMotionNumber(void) const
モーション番号の取得
Definition GxModUnitMotionSequence.h:213
u32 getSequenceParam3(u32 lineNumber, u32 index) const
シーケンスパラメータ3を取得
Definition GxModUnitMotionSequence.cpp:900
Play(void)
コンストラクタ
Definition GxModUnitMotionSequence.cpp:610
u32 getSequenceParam(u32 lineNumber, u32 index) const
シーケンスパラメータを取得
Definition GxModUnitMotionSequence.cpp:836
const GxResMotionSequence::GxDataHeader * getResSequenceDataHeader(u32 lineNumber, u32 index) const
シーケンスリソースデータヘッダを取得
Definition GxModUnitMotionSequence.cpp:819
u32 getSequenceFromFrame(u32 sequenceIndex, s32 frame) const
フレーム値を指定してシーケンスパラメータを取得
Definition GxModUnitMotionSequence.cpp:916
constexpr GxResMotionSequence const * getResourceSequence(u32 index) const
シーケンスリソースを取得
Definition GxModUnitMotionSequence.h:191
constexpr u32 getPreFrame(void) const
前フレーム値の取得
Definition GxModUnitMotionSequence.h:219
constexpr u32 getMotionDataNumber(void) const
モーションデータ番号の取得
Definition GxModUnitMotionSequence.h:217
b32 set(GxResMotionSequencePackage *pResMotionSequencePackage, u32 motionNumber, f32 currentFrame, f32 maxFrame)
モーションセット
Definition GxModUnitMotionSequence.cpp:682
constexpr u32 getNowFrame(void) const
現フレーム値の取得
Definition GxModUnitMotionSequence.h:221
constexpr u32 * getSequenceOldAll(u32 index) const
全ラインの前回のシーケンスを取得
Definition GxModUnitMotionSequence.h:195
constexpr u32 * getTriggerSequenceOldAll(u32 index) const
前回のトリガーシーケンスを取得
Definition GxModUnitMotionSequence.h:199
constexpr u32 * getTriggerSequenceAll(u32 index) const
トリガーシーケンスを取得
Definition GxModUnitMotionSequence.h:197
constexpr f32 getMaxFrame(void) const
モーションフレーム数の取得
Definition GxModUnitMotionSequence.h:215
void initializeSequence(f32 currentFrame)
シーケンス再生クラスの初期化
Definition GxModUnitMotionSequence.cpp:724
b32 initialize(GxModUnitMotionSequence *pParent)
初期化
Definition GxModUnitMotionSequence.cpp:654
u32 getSequenceParam2(u32 lineNumber, u32 index) const
シーケンスパラメータ2を取得
Definition GxModUnitMotionSequence.cpp:884
u32 getSequenceParam1(u32 lineNumber, u32 index) const
シーケンスパラメータ1を取得
Definition GxModUnitMotionSequence.cpp:868
モーションシーケンスクラス
Definition GxModUnitMotionSequence.h:21
constexpr GxResMotionSequencePackage * getResMotionSequencePackage(void) const
モーションパッケージリソースを取得
Definition GxModUnitMotionSequence.h:131
constexpr s32 getCurrentMotionSequenceNumber(void) const
Definition GxModUnitMotionSequence.h:119
constexpr u32 getPlayCount(void) const
再生クラス個数の取得
Definition GxModUnitMotionSequence.h:125
constexpr void setCurrentMotionSequenceNumber(s32 number)
現在使っているモーションシーケンス番号を設定
Definition GxModUnitMotionSequence.h:121
モーション再生クラス
Definition GxMotionPlayer.h:22
モーションシーケンスリソース
Definition GxResMotionSequence.h:20
Definition GxResMotionSequencePackage.h:91
static constexpr u32 SEQUENCE_COUNT
シーケンスファイル個数
Definition GxResMotionSequencePackage.h:31
シーケンスデータヘッダ
Definition GxResMotionSequence.h:96
32bitブーリアン
Definition GxDefine.h:173