23class AnmObjMatClr :
public AnmObj {
25 AnmObjMatClr(
MEMAllocator* pAllocator, u16* pBindingBuf,
int numBinding);
26 virtual void G3dProc(ulong task, ulong param,
void* pInfo) = 0;
27 virtual ~AnmObjMatClr() {}
29 virtual void SetFrame(f32 frame) = 0;
30 virtual f32 GetFrame()
const = 0;
31 virtual void UpdateFrame() = 0;
33 virtual void SetUpdateRate(f32 rate) = 0;
34 virtual f32 GetUpdateRate()
const = 0;
36 virtual bool Bind(
const ResMdl mdl) = 0;
37 virtual void Release();
44 virtual void DetachAll();
46 bool TestExistence(ulong idx)
const;
47 bool TestDefined(ulong idx)
const;
51 BINDING_ID_MASK = (1 << 14) - 1,
52 BINDING_INVALID = (1 << 14),
53 BINDING_UNDEFINED = (1 << 15),
57 static const int DEFAULT_MAX_CHILDREN = 4;
63 NW4R_G3D_RTTI_DECL_DERIVED(AnmObjMatClr, AnmObj);
107class AnmObjMatClrOverride :
public AnmObjMatClrNode {
109 static AnmObjMatClrOverride* Construct(
MEMAllocator* pAllocator,
size_t* pSize,
110 ResMdl mdl,
int numChildren);
112 AnmObjMatClrOverride(
MEMAllocator* pAllocator, u16* pBindingBuf,
115 : AnmObjMatClrNode(pAllocator, pBindingBuf, numBinding, ppChildrenBuf,
118 virtual ~AnmObjMatClrOverride() {}
123 NW4R_G3D_RTTI_DECL_DERIVED(AnmObjMatClrOverride, AnmObjMatClrNode);
131class AnmObjMatClrRes :
public AnmObjMatClr,
protected FrameCtrl {
133 static AnmObjMatClrRes* Construct(
MEMAllocator* pAllocator,
size_t* pSize,
138 virtual void G3dProc(ulong task, ulong param,
void* pInfo);
139 virtual ~AnmObjMatClrRes() {}
141 virtual void SetFrame(f32 frame);
142 virtual f32 GetFrame()
const;
143 virtual void UpdateFrame();
145 virtual void SetUpdateRate(f32 rate);
146 virtual f32 GetUpdateRate()
const;
148 virtual bool Bind(
const ResMdl mdl);
159 void SetPlayPolicy(PlayPolicyFunc pFunc) {
160 FrameCtrl::SetPlayPolicy(pFunc);
167 NW4R_G3D_RTTI_DECL_DERIVED(AnmObjMatClrRes, AnmObjMatClr);