1#ifndef NW_G3D_SHAPEANIMOBJ_H_
2#define NW_G3D_SHAPEANIMOBJ_H_
4#include <nw/g3d/g3d_config.h>
5#include <nw/g3d/g3d_AnimObj.h>
6#include <nw/g3d/res/g3d_ResShapeAnim.h>
8namespace nw {
namespace g3d {
25 bool Init(
const InitArg& arg,
void* pBuffer, size_t bufferSize);
63 return pModel->GetShapeCount() <= GetBindTable().GetSize();
69 return pRes->GetVertexShapeAnimCount() <= m_MaxVtxShpAnim &&
70 pRes->GetKeyShapeAnimCount() <= m_MaxSubBind;
77 int idxAnim = GetBindTable().GetAnimIndex(shapeIndex);
89 int idxAnim = GetBindTable().GetAnimIndex(shapeIndex);
92 s32 beginKeyShapeAnim =
m_pRes->GetVertexShapeAnim(idxAnim)->ref().beginKeyShapeAnim;
93 return &m_pSubBindIndexArray[beginKeyShapeAnim];
161 m_Sizer.Invalidate();
171 m_Sizer.Invalidate();
184 m_Sizer.Invalidate();
193 m_Sizer.Invalidate();
202 m_Sizer.Invalidate();
212 m_Sizer.Invalidate();
225 InitArg(
int shapeCount,
int vertexShapeAnimCount,
int keyShapeAnimCount)
243 m_Sizer.Invalidate();
Definition g3d_AnimObj.h:94
@ NOT_BOUND
Definition g3d_AnimObj.h:106
BindFlag
Definition g3d_AnimObj.h:279
Definition g3d_AnimObj.h:343
ModelAnimObj()
Definition g3d_AnimObj.h:364
BindFlag GetBindFlagImpl(int targetIndex) const
void SetBindFlagImpl(int targetIndex, BindFlag flag)
void SetTargetUnbound()
Definition g3d_AnimObj.h:372
Definition g3d_ModelObj.h:15
Definition g3d_ShapeAnimObj.h:146
void Reserve(const ResModel *pResModel)
Definition g3d_ShapeAnimObj.h:157
int m_NumCurve
Definition g3d_ShapeAnimObj.h:250
bool m_ContextEnabled
Definition g3d_ShapeAnimObj.h:251
bool IsValid() const
Definition g3d_ShapeAnimObj.h:217
void DisableContext()
Definition g3d_ShapeAnimObj.h:176
int GetMaxShapeCount() const
Definition g3d_ShapeAnimObj.h:187
InitArg(int shapeCount, int vertexShapeAnimCount, int keyShapeAnimCount)
Definition g3d_ShapeAnimObj.h:225
int m_NumShape
Definition g3d_ShapeAnimObj.h:247
bool m_ContextAvailable
Definition g3d_ShapeAnimObj.h:252
Sizer m_Sizer
Definition g3d_ShapeAnimObj.h:253
int m_NumKeyShapeAnim
Definition g3d_ShapeAnimObj.h:249
int m_NumVertexShapeAnim
Definition g3d_ShapeAnimObj.h:248
void SetMaxKeyShapeAnimCount(int keyShapeAnimCount)
Definition g3d_ShapeAnimObj.h:198
int GetMaxVertexShapeAnimCount() const
Definition g3d_ShapeAnimObj.h:196
bool IsContextEnabled() const
Definition g3d_ShapeAnimObj.h:178
InitArg()
Definition g3d_ShapeAnimObj.h:148
Sizer & GetSizer() const
Definition g3d_ShapeAnimObj.h:223
void Clear()
Definition g3d_ShapeAnimObj.h:150
int GetMaxCurveCount() const
Definition g3d_ShapeAnimObj.h:215
void SetMaxShapeCount(int shapeCount)
Definition g3d_ShapeAnimObj.h:180
void EnableContext()
Definition g3d_ShapeAnimObj.h:174
void SetMaxCurveCount(int curveCount)
Definition g3d_ShapeAnimObj.h:207
int GetMaxKeyShapeAnimCount() const
Definition g3d_ShapeAnimObj.h:205
void Reserve(const ResShapeAnim *pResAnim)
Definition g3d_ShapeAnimObj.h:164
void EnableContext(int curveCount)
Definition g3d_ShapeAnimObj.h:238
void SetMaxVertexShapeAnimCount(int vertexShapeAnimCount)
Definition g3d_ShapeAnimObj.h:189
Definition g3d_ShapeAnimObj.h:127
Chunk chunk[NUM_CHUNK]
Definition g3d_ShapeAnimObj.h:142
@ BIND_TABLE
Definition g3d_ShapeAnimObj.h:136
@ FRAMECACHE_ARRAY
Definition g3d_ShapeAnimObj.h:138
@ NUM_CHUNK
Definition g3d_ShapeAnimObj.h:139
@ SUBBIND_TABLE
Definition g3d_ShapeAnimObj.h:137
@ RESULT_BUFFER
Definition g3d_ShapeAnimObj.h:135
void Calc(const InitArg &arg)
Definition g3d_ShapeAnimObj.cpp:8
Sizer()
Definition g3d_ShapeAnimObj.h:129
Definition g3d_ShapeAnimObj.h:14
BindResult SubBindFast(const ResVertexShapeAnim *pVertexShapeAnim)
Definition g3d_ShapeAnimObj.cpp:192
ResVertexShapeAnimData * m_pVertexShapeAnimArray
Definition g3d_ShapeAnimObj.h:118
ShapeAnimObj()
Definition g3d_ShapeAnimObj.h:23
s8 * m_pSubBindIndexArray
Definition g3d_ShapeAnimObj.h:121
virtual void ApplyTo(ModelObj *pModelObj) const
Definition g3d_ShapeAnimObj.cpp:274
void SetResource(ResShapeAnim *pRes)
Definition g3d_ShapeAnimObj.cpp:64
ResVertexShapeAnim * GetVertexShapeAnim(int animIndex)
Definition g3d_ShapeAnimObj.h:99
static size_t CalcBufferSize(const InitArg &arg)
Definition g3d_ShapeAnimObj.cpp:26
bool IsAcceptable(const ResShapeAnim *pRes) const
Definition g3d_ShapeAnimObj.h:66
virtual void Calc()
Definition g3d_ShapeAnimObj.cpp:223
s32 m_MaxVtxShpAnim
Definition g3d_ShapeAnimObj.h:119
virtual void BindFast(const ResModel *pModel)
Definition g3d_ShapeAnimObj.cpp:144
void SetBindFlag(int shapeIndex, BindFlag flag)
Definition g3d_ShapeAnimObj.h:33
bool IsAcceptable(const ResModel *pModel) const
Definition g3d_ShapeAnimObj.h:59
int GetKeyShapeCount(int shapeIndex) const
Definition g3d_ShapeAnimObj.h:73
ResShapeAnim * m_pRes
Definition g3d_ShapeAnimObj.h:117
void ResetResource()
Definition g3d_ShapeAnimObj.h:53
BindResult SubBind(const ResVertexShapeAnim *pVertexShapeAnim, const ResShape *pShape)
Definition g3d_ShapeAnimObj.cpp:171
bool Init(const InitArg &arg, void *pBuffer, size_t bufferSize)
Definition g3d_ShapeAnimObj.cpp:33
const ResVertexShapeAnim * GetVertexShapeAnim(int animIndex) const
Definition g3d_ShapeAnimObj.h:104
Alignment
Definition g3d_ShapeAnimObj.h:19
@ BUFFER_ALIGNMENT
Definition g3d_ShapeAnimObj.h:20
const ResShapeAnim * GetResource() const
Definition g3d_ShapeAnimObj.h:49
s32 m_MaxSubBind
Definition g3d_ShapeAnimObj.h:120
virtual BindResult Bind(const ResModel *pModel)
Definition g3d_ShapeAnimObj.cpp:79
virtual void ClearResult()
Definition g3d_ShapeAnimObj.cpp:210
s8 * GetKeyShapeIndexArray(int shapeIndex) const
Definition g3d_ShapeAnimObj.h:85
void ApplyTo(ShapeObj *pShapeObj, int animIndex) const
Definition g3d_ShapeAnimObj.cpp:294
BindFlag GetBindFlag(int shapeIndex)
Definition g3d_ShapeAnimObj.h:39
virtual BindResult Bind(const ModelObj *pModel)
Definition g3d_ShapeAnimObj.cpp:111
Definition g3d_ShapeObj.h:95
Definition g3d_Sizer.h:10
Sizer()
Definition g3d_Sizer.h:18
Definition g3d_Binding.h:16
Definition g3d_ResModel.h:38
Definition g3d_ResShapeAnim.h:81
int GetCurveCount() const
Definition g3d_ResShapeAnim.h:109
bool IsCurveBaked() const
Definition g3d_ResShapeAnim.h:103
int GetKeyShapeAnimCount() const
Definition g3d_ResShapeAnim.h:107
Definition g3d_ResShape.h:237
Definition g3d_ResShapeAnim.h:32
int GetKeyShapeAnimCount() const
Definition g3d_ResShapeAnim.h:56
#define NW_G3D_ASSERT_NOT_NULL(exp)
Definition g3d_assert.h:20
#define NW_G3D_ASSERT_INDEX_BOUNDS(index, size)
Definition g3d_assert.h:23
#define NW_G3D_ASSERT(exp)
Definition g3d_assert.h:17
#define NW_G3D_DISALLOW_COPY_AND_ASSIGN(TypeName)
Definition g3d_defs.h:81
Definition g3d_GfxManage.cpp:10
Definition g3d_Sizer.h:13
Definition g3d_ResShapeAnim.h:17