NW4F G3d
Loading...
Searching...
No Matches
g3d_ResShapeAnim.h
Go to the documentation of this file.
1#ifndef NW_G3D_RES_RESSHAPEANIM_H_
2#define NW_G3D_RES_RESSHAPEANIM_H_
3
4#include <nw/g3d/g3d_config.h>
5#include <nw/g3d/res/g3d_ResCommon.h>
6#include <nw/g3d/res/g3d_ResDictionary.h>
7#include <nw/g3d/res/g3d_ResAnimCurve.h>
8#include <nw/g3d/res/g3d_ResModel.h>
9#include <nw/g3d/res/g3d_Binding.h>
10
11namespace nw { namespace g3d { namespace res {
12
13class BindCallback;
14class ResFile;
15
30
32{
34
35public:
43
44 void PreBind(const ResShape* target);
45
46 void Init(float* pResult) const;
47
48 void Eval(float* pResult, float frame, const s8* pSubBindIndex) const;
49
50 void Eval(float* pResult, float frame, const s8* pSubBindIndex,
51 AnimFrameCache* pFrameCache) const;
52
54 NW_G3D_RES_FIELD_CLASS_ARRAY_DECL(ResAnimCurve, Curve)
55
56 int GetKeyShapeAnimCount() const { return ref().numKeyShapeAnim; }
57};
58
79
81{
83
84public:
85 enum Signature { SIGNATURE = NW_G3D_MAKE_U8X4_AS_U32('F', 'S', 'H', 'A') };
86
92
93 BindResult PreBind(const ResModel* pModel);
94
95 bool BakeCurve(void* pBuffer, size_t bufferSize);
96
97 void* ResetCurve();
98
99 void Reset();
100
101 bool IsLooped() const { return 0 != (ref().flag & PLAYPOLICY_LOOP); }
102
103 bool IsCurveBaked() const { return 0 != (ref().flag & CURVE_BAKED); }
104
105 int GetFrameCount() const { return ref().numFrame; }
106
107 int GetKeyShapeAnimCount() const { return ref().numKeyShapeAnim; }
108
109 int GetCurveCount() const { return ref().numCurve; }
110
111 size_t GetBakedSize() const { return ref().bakedSize; }
112
115 NW_G3D_RES_FIELD_CLASS_DECL(ResModel, BindModel)
116 NW_G3D_RES_FIELD_CLASS_ARRAY_DECL(ResVertexShapeAnim, VertexShapeAnim)
117
118 NW_G3D_RES_FIELD_DIC_DECL(ResUserData, UserData)
119};
120
121} } } // namespace nw::g3d::res
122
123#endif // NW_G3D_RES_RESSHAPEANIM_H_
Definition g3d_ResCommon.h:93
Definition g3d_ResFile.h:131
Definition g3d_Binding.h:16
Definition g3d_ResCommon.h:62
Definition g3d_ResFile.h:62
Definition g3d_ResModel.h:38
Definition g3d_ResShapeAnim.h:81
size_t GetBakedSize() const
Definition g3d_ResShapeAnim.h:111
Signature
Definition g3d_ResShapeAnim.h:85
@ SIGNATURE
Definition g3d_ResShapeAnim.h:85
int GetCurveCount() const
Definition g3d_ResShapeAnim.h:109
Flag
Definition g3d_ResShapeAnim.h:88
@ PLAYPOLICY_LOOP
Definition g3d_ResShapeAnim.h:90
@ CURVE_BAKED
Definition g3d_ResShapeAnim.h:89
bool IsLooped() const
Definition g3d_ResShapeAnim.h:101
bool IsCurveBaked() const
Definition g3d_ResShapeAnim.h:103
int GetFrameCount() const
Definition g3d_ResShapeAnim.h:105
BindResult PreBind(const ResModel *pModel)
int GetKeyShapeAnimCount() const
Definition g3d_ResShapeAnim.h:107
bool BakeCurve(void *pBuffer, size_t bufferSize)
Definition g3d_ResShape.h:237
Definition g3d_ResShapeAnim.h:32
void Eval(float *pResult, float frame, const s8 *pSubBindIndex, AnimFrameCache *pFrameCache) const
Definition g3d_ResShapeAnim.cpp:28
void Init(float *pResult) const
Definition g3d_ResShapeAnim.cpp:51
int GetKeyShapeAnimCount() const
Definition g3d_ResShapeAnim.h:56
void PreBind(const ResShape *target)
void Eval(float *pResult, float frame, const s8 *pSubBindIndex) const
Definition g3d_ResShapeAnim.cpp:6
#define NW_G3D_RES_COMMON(class_name)
Definition g3d_ResCommon.h:30
#define NW_G3D_RES_FIELD_CLASS_ARRAY_DECL(type, name)
Definition g3d_ResDefs.h:92
#define NW_G3D_RES_FIELD_CLASS_DECL(type, name)
Definition g3d_ResDefs.h:124
#define NW_G3D_RES_FIELD_STRING_DECL(name)
Definition g3d_ResDefs.h:137
#define NW_G3D_RES_FIELD_DIC_DECL(type, name)
Definition g3d_ResDefs.h:51
u16 bit16
Definition g3d_defs.h:130
#define NW_G3D_MAKE_U8X4_AS_U32(a, b, c, d)
Definition g3d_defs.h:90
Definition g3d_defs.h:122
Definition g3d_GfxManage.cpp:10
Definition g3d_ResAnimCurve.h:13
@ PLAYPOLICY_LOOP
Definition g3d_ResAnimCurve.h:18
@ CURVE_BAKED
Definition g3d_ResAnimCurve.h:16
Definition g3d_ResAnimCurve.h:25
Definition g3d_ResCommon.h:179
Definition g3d_ResShapeAnim.h:60
Offset ofsBindModel
Definition g3d_ResShapeAnim.h:74
u32 bakedSize
Definition g3d_ResShapeAnim.h:70
BinString ofsPath
Definition g3d_ResShapeAnim.h:63
u16 reserved
Definition g3d_ResShapeAnim.h:72
u16 numVertexShapeAnim
Definition g3d_ResShapeAnim.h:67
u16 numUserData
Definition g3d_ResShapeAnim.h:71
u8 numKeyShapeAnim
Definition g3d_ResShapeAnim.h:68
BinaryBlockHeader blockHeader
Definition g3d_ResShapeAnim.h:61
s16 numFrame
Definition g3d_ResShapeAnim.h:66
u8 numCurve
Definition g3d_ResShapeAnim.h:69
BinString ofsName
Definition g3d_ResShapeAnim.h:62
Offset ofsUserDataDic
Definition g3d_ResShapeAnim.h:77
Offset ofsVertexShapeAnimArray
Definition g3d_ResShapeAnim.h:76
bit16 flag
Definition g3d_ResShapeAnim.h:65
Offset ofsBindIndexArray
Definition g3d_ResShapeAnim.h:75
Definition g3d_ResShapeAnim.h:17
BinString ofsName
Definition g3d_ResShapeAnim.h:24
u16 reserved
Definition g3d_ResShapeAnim.h:20
s32 beginKeyShapeAnim
Definition g3d_ResShapeAnim.h:22
u8 numKeyShapeAnim
Definition g3d_ResShapeAnim.h:19
s32 beginCurve
Definition g3d_ResShapeAnim.h:21
Offset ofsBaseValueArray
Definition g3d_ResShapeAnim.h:28
Offset ofsCurveArray
Definition g3d_ResShapeAnim.h:27
Offset ofsKeyShapeAnimInfoArray
Definition g3d_ResShapeAnim.h:26
u8 numCurve
Definition g3d_ResShapeAnim.h:18
s8 subbindIndex
Definition g3d_ResShapeAnim.h:39
BinString ofsName
Definition g3d_ResShapeAnim.h:41
s8 curveIndex
Definition g3d_ResShapeAnim.h:38
u16 reserved
Definition g3d_ResShapeAnim.h:40