NW4F G3d
Loading...
Searching...
No Matches
g3d_ResSceneAnim.h
Go to the documentation of this file.
1#ifndef NW_G3D_RES_RESSCENEANIM_H_
2#define NW_G3D_RES_RESSCENEANIM_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_Binding.h>
9#include <nw/g3d/res/g3d_ResUserData.h>
10
11namespace nw { namespace g3d { namespace res {
12
14{
16 {
17 float nearZ;
18 float farZ;
19 float aspect;
20 union
21 {
22 float height;
23 float fovy;
24 };
25 } proj;
26 struct View
27 {
28 float pos[3];
29 union
30 {
31 float aim[3];
32 float rotate[3];
33 };
34 float twist;
35 } view;
36};
37
38class BindFuncTable;
39
55
57{
59
60public:
61 enum Signature { SIGNATURE = NW_G3D_MAKE_U8X4_AS_U32('F', 'C', 'A', 'M') };
62
78
79 void Init(CameraAnimResult* pResult) const;
80
81 bool BakeCurve(void* pBuffer, size_t bufferSize);
82
83 void* ResetCurve();
84
85 void Reset();
86
87 void Eval(CameraAnimResult* pResult, float frame) const;
88
89 void Eval(CameraAnimResult* pResult, float frame, AnimFrameCache* pFrameCache) const;
90
92 NW_G3D_RES_FIELD_CLASS_ARRAY_DECL(ResAnimCurve, Curve)
93
94 bool IsLooped() const { return 0 != (ref().flag & PLAYPOLICY_LOOP); }
95
96 bool IsCurveBaked() const { return 0 != (ref().flag & CURVE_BAKED); }
97
98 int GetFrameCount() const { return ref().numFrame; }
99
100 bit32 GetRotateMode() const { return ref().flag & ROT_MASK; }
101
102 bit32 GetProjectionMode() const { return ref().flag & PROJ_MASK; }
103
104 size_t GetBakedSize() const { return ref().bakedSize; }
105
106 NW_G3D_RES_FIELD_DIC_DECL(ResUserData, UserData)
107};
108
110{
111 // Unused in NSMBU
112};
113
115{
117
118public:
119 enum Signature { SIGNATURE = NW_G3D_MAKE_U8X4_AS_U32('F', 'L', 'I', 'T') };
120};
121
123{
124 // Unused in NSMBU
125};
126
128{
130
131public:
132 enum Signature { SIGNATURE = NW_G3D_MAKE_U8X4_AS_U32('F', 'F', 'O', 'G') };
133};
134
152
154{
156
157public:
158 enum Signature { SIGNATURE = NW_G3D_MAKE_U8X4_AS_U32('F', 'S', 'C', 'N') };
159
160 // BindResult Bind(const BindFuncTable& funcTable);
161
162 void Release();
163
164 void Reset();
165
168
169 NW_G3D_RES_FIELD_DIC_DECL(ResCameraAnim, CameraAnim)
170
171 NW_G3D_RES_FIELD_DIC_DECL(ResLightAnim, LightAnim)
172
173 NW_G3D_RES_FIELD_DIC_DECL(ResFogAnim, FogAnim)
174
175 NW_G3D_RES_FIELD_DIC_DECL(ResUserData, UserData)
176};
177
179{
180};
181
182} } } // namespace nw::g3d::res
183
184#endif // NW_G3D_RES_RESSCENEANIM_H_
Definition g3d_ResCommon.h:93
Definition g3d_ResSceneAnim.h:179
Definition g3d_ResCommon.h:62
Definition g3d_ResSceneAnim.h:57
void Eval(CameraAnimResult *pResult, float frame, AnimFrameCache *pFrameCache) const
Definition g3d_ResSceneAnim.cpp:23
bool BakeCurve(void *pBuffer, size_t bufferSize)
bit32 GetRotateMode() const
Definition g3d_ResSceneAnim.h:100
Signature
Definition g3d_ResSceneAnim.h:61
@ SIGNATURE
Definition g3d_ResSceneAnim.h:61
bool IsCurveBaked() const
Definition g3d_ResSceneAnim.h:96
size_t GetBakedSize() const
Definition g3d_ResSceneAnim.h:104
void Eval(CameraAnimResult *pResult, float frame) const
Definition g3d_ResSceneAnim.cpp:11
int GetFrameCount() const
Definition g3d_ResSceneAnim.h:98
bool IsLooped() const
Definition g3d_ResSceneAnim.h:94
bit32 GetProjectionMode() const
Definition g3d_ResSceneAnim.h:102
Flag
Definition g3d_ResSceneAnim.h:64
@ PROJ_SHIFT
Definition g3d_ResSceneAnim.h:73
@ ROT_SHIFT
Definition g3d_ResSceneAnim.h:68
@ PROJ_PERSP
Definition g3d_ResSceneAnim.h:75
@ CURVE_BAKED
Definition g3d_ResSceneAnim.h:65
@ PLAYPOLICY_LOOP
Definition g3d_ResSceneAnim.h:66
@ PROJ_ORTHO
Definition g3d_ResSceneAnim.h:74
@ ROT_EULER_ZXY
Definition g3d_ResSceneAnim.h:70
@ ROT_AIM
Definition g3d_ResSceneAnim.h:69
@ ROT_MASK
Definition g3d_ResSceneAnim.h:71
@ PROJ_MASK
Definition g3d_ResSceneAnim.h:76
void Init(CameraAnimResult *pResult) const
Definition g3d_ResSceneAnim.cpp:6
Definition g3d_ResSceneAnim.h:128
Signature
Definition g3d_ResSceneAnim.h:132
@ SIGNATURE
Definition g3d_ResSceneAnim.h:132
Definition g3d_ResSceneAnim.h:115
Signature
Definition g3d_ResSceneAnim.h:119
@ SIGNATURE
Definition g3d_ResSceneAnim.h:119
Definition g3d_ResSceneAnim.h:154
Signature
Definition g3d_ResSceneAnim.h:158
@ SIGNATURE
Definition g3d_ResSceneAnim.h:158
#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_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
u32 bit32
Definition g3d_defs.h:131
#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_ResSceneAnim.h:16
float farZ
Definition g3d_ResSceneAnim.h:18
float height
Definition g3d_ResSceneAnim.h:22
float nearZ
Definition g3d_ResSceneAnim.h:17
float fovy
Definition g3d_ResSceneAnim.h:23
float aspect
Definition g3d_ResSceneAnim.h:19
Definition g3d_ResSceneAnim.h:27
float pos[3]
Definition g3d_ResSceneAnim.h:28
float aim[3]
Definition g3d_ResSceneAnim.h:31
float rotate[3]
Definition g3d_ResSceneAnim.h:32
float twist
Definition g3d_ResSceneAnim.h:34
Definition g3d_ResSceneAnim.h:14
Definition g3d_ResSceneAnim.h:41
s16 numFrame
Definition g3d_ResSceneAnim.h:45
bit16 flag
Definition g3d_ResSceneAnim.h:43
Offset ofsCurveArray
Definition g3d_ResSceneAnim.h:51
u8 numCurve
Definition g3d_ResSceneAnim.h:46
u8 reserved
Definition g3d_ResSceneAnim.h:47
BinaryBlockHeader blockHeader
Definition g3d_ResSceneAnim.h:42
BinString ofsName
Definition g3d_ResSceneAnim.h:50
Offset ofsUserDataDic
Definition g3d_ResSceneAnim.h:53
Offset ofsBaseValueArray
Definition g3d_ResSceneAnim.h:52
u16 numUserData
Definition g3d_ResSceneAnim.h:48
u32 bakedSize
Definition g3d_ResSceneAnim.h:49
Definition g3d_ResSceneAnim.h:123
Definition g3d_ResSceneAnim.h:110
Definition g3d_ResSceneAnim.h:136
BinaryBlockHeader blockHeader
Definition g3d_ResSceneAnim.h:137
u16 numFogAnim
Definition g3d_ResSceneAnim.h:145
u16 numLightAnim
Definition g3d_ResSceneAnim.h:144
BinString ofsPath
Definition g3d_ResSceneAnim.h:139
Offset ofsUserDataDic
Definition g3d_ResSceneAnim.h:150
u8 reserved
Definition g3d_ResSceneAnim.h:143
Offset ofsCameraAnimDic
Definition g3d_ResSceneAnim.h:147
BinString ofsName
Definition g3d_ResSceneAnim.h:138
u8 numCameraAnim
Definition g3d_ResSceneAnim.h:142
u16 numUserData
Definition g3d_ResSceneAnim.h:141
Offset ofsLightAnimDic
Definition g3d_ResSceneAnim.h:148
Offset ofsFogAnimDic
Definition g3d_ResSceneAnim.h:149