22class AnmObjTexPat :
public AnmObj {
24 AnmObjTexPat(
MEMAllocator* pAllocator, u16* pBindingBuf,
int numBinding);
25 virtual void G3dProc(ulong task, ulong param,
void* pInfo) = 0;
26 virtual ~AnmObjTexPat() {}
28 virtual void SetFrame(f32 frame) = 0;
29 virtual f32 GetFrame()
const = 0;
30 virtual void UpdateFrame() = 0;
32 virtual void SetUpdateRate(f32 rate) = 0;
33 virtual f32 GetUpdateRate()
const = 0;
35 virtual bool Bind(
const ResMdl mdl) = 0;
36 virtual void Release();
43 virtual void DetachAll();
45 bool TestExistence(ulong idx)
const;
46 bool TestDefined(ulong idx)
const;
50 BINDING_ID_MASK = (1 << 14) - 1,
51 BINDING_INVALID = (1 << 14),
52 BINDING_UNDEFINED = (1 << 15),
56 static const int MAX_CHILD = 4;
62 NW4R_G3D_RTTI_DECL_DERIVED(AnmObjTexPat, AnmObj);
106class AnmObjTexPatOverride :
public AnmObjTexPatNode {
108 static AnmObjTexPatOverride* Construct(
MEMAllocator* pAllocator,
size_t* pSize,
109 ResMdl mdl,
int numChildren);
111 AnmObjTexPatOverride(
MEMAllocator* pAllocator, u16* pBindingBuf,
114 : AnmObjTexPatNode(pAllocator, pBindingBuf, numBinding, ppChildrenBuf,
117 virtual ~AnmObjTexPatOverride() {}
122 NW4R_G3D_RTTI_DECL_DERIVED(AnmObjTexPatOverride, AnmObjTexPatNode);
130class AnmObjTexPatRes :
public AnmObjTexPat,
protected FrameCtrl {
132 static AnmObjTexPatRes* Construct(
MEMAllocator* pAllocator,
size_t* pSize,
136 u16* pBindingBuf,
int numBinding,
138 virtual void G3dProc(ulong task, ulong param,
void* pInfo);
139 virtual ~AnmObjTexPatRes() {}
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(AnmObjTexPatRes, AnmObjTexPat);