Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
J3DJointTree.h
Go to the documentation of this file.
1#ifndef J3DJOINTTREE_H
2#define J3DJOINTTREE_H
3
5
6class JUTNameTab;
7
13 /* 0x0 */ u16 mType;
14 /* 0x2 */ u16 mValue;
15};
16
18
26
27 /* 0x0 */ u16 mEntryNum;
29 /* 0x4 */ u8* mDrawMtxFlag;
30 /* 0x8 */ u16* mDrawMtxIndex;
31}; // Size: 0xC
32
33class J3DShapeTable;
34
40public:
45
46 virtual void calc(J3DMtxBuffer*, Vec const&, f32 const (&)[3][4]);
47 virtual ~J3DJointTree() {}
48
50 void setHierarchy(J3DModelHierarchy* hierarchy) { mHierarchy = hierarchy; }
52 u16 getWEvlpMtxNum() const { return mWEvlpMtxNum; }
54 u8 getWEvlpMixMtxNum(u16 idx) const { return mWEvlpMixMtxNum[idx]; }
59 u16 getJointNum() const { return mJointNum; }
61 u8 getDrawMtxFlag(u16 idx) const { return mDrawMtxData.mDrawMtxFlag[idx]; }
62 u16 getDrawMtxIndex(u16 idx) const { return mDrawMtxData.mDrawMtxIndex[idx]; }
64 JUTNameTab* getJointName() const { return mJointName; }
67 J3D_ASSERT_RANGE(139, idx < mJointNum);
68 return mJointNodePointer[idx];
69 }
71 Mtx& getInvJointMtx(int idx) { return mInvJointMtx[idx]; }
73 void setModelDataType(u32 type) { mModelDataType = type; }
74 bool checkFlag(u32 flag) const { return mFlags & flag ? true : false; }
75 void setFlag(u32 flag) { mFlags = flag; }
76
77private:
78 friend class J3DModelLoader;
79
81 /* 0x08 */ u32 mFlags;
82 /* 0x0C */ u32 mModelDataType;
83 /* 0x10 */ J3DJoint* mRootNode;
86 /* 0x1C */ u16 mJointNum;
87 /* 0x1E */ u16 mWEvlpMtxNum;
88 /* 0x20 */ u8* mWEvlpMixMtxNum;
90 /* 0x28 */ f32* mWEvlpMixWeight;
91 /* 0x2C */ Mtx* mInvJointMtx;
94 /* 0x40 */ u32 field_0x40;
96}; // Size: 0x48
97
98#endif /* J3DJOINTTREE_H */
static BOOL flag
Definition DEMOAVX.c:20
Definition J3DJointTree.h:39
void setHierarchy(J3DModelHierarchy *hierarchy)
Definition J3DJointTree.h:50
J3DMtxCalc * mBasicMtxCalc
Definition J3DJointTree.h:84
u16 mWEvlpMtxNum
Definition J3DJointTree.h:87
u16 * getWEvlpMixIndex() const
Definition J3DJointTree.h:53
JUTNameTab * mJointName
Definition J3DJointTree.h:95
J3DJointTree()
Definition J3DJointTree.cpp:17
u16 * getWEvlpImportantMtxIndex() const
Definition J3DJointTree.h:57
JUTNameTab * getJointName() const
Definition J3DJointTree.h:64
J3DMtxCalc * getBasicMtxCalc()
Definition J3DJointTree.h:70
u16 getDrawMtxNum() const
Definition J3DJointTree.h:60
u16 getWEvlpMtxNum() const
Definition J3DJointTree.h:52
J3DDrawMtxData mDrawMtxData
Definition J3DJointTree.h:93
Mtx * mInvJointMtx
Definition J3DJointTree.h:91
u32 field_0x40
Definition J3DJointTree.h:94
void findImportantMtxIndex()
Definition J3DJointTree.cpp:74
u16 getDrawMtxIndex(u16 idx) const
Definition J3DJointTree.h:62
J3DModelHierarchy const * getHierarchy()
Definition J3DJointTree.h:49
J3DDrawMtxData * getDrawMtxData()
Definition J3DJointTree.h:63
Mtx & getInvJointMtx(int idx)
Definition J3DJointTree.h:71
u32 getModelDataType() const
Definition J3DJointTree.h:72
J3DJoint ** mJointNodePointer
Definition J3DJointTree.h:85
J3DModelHierarchy * mHierarchy
Definition J3DJointTree.h:80
void setFlag(u32 flag)
Definition J3DJointTree.h:75
u8 getWEvlpMixMtxNum(u16 idx) const
Definition J3DJointTree.h:54
f32 * getWEvlpMixWeight() const
Definition J3DJointTree.h:56
virtual void calc(J3DMtxBuffer *, Vec const &, f32 const (&)[3][4])
Definition J3DJointTree.cpp:103
u8 * mWEvlpMixMtxNum
Definition J3DJointTree.h:88
u16 mJointNum
Definition J3DJointTree.h:86
u16 * mWEvlpImportantMtxIdx
Definition J3DJointTree.h:92
u32 mModelDataType
Definition J3DJointTree.h:82
u32 mFlags
Definition J3DJointTree.h:81
u16 * mWEvlpMixMtxIndex
Definition J3DJointTree.h:89
f32 * mWEvlpMixWeight
Definition J3DJointTree.h:90
J3DJoint * getJointNodePointer(u16 idx) const
Definition J3DJointTree.h:66
u16 getJointNum() const
Definition J3DJointTree.h:59
u16 getDrawFullWgtMtxNum() const
Definition J3DJointTree.h:58
void setModelDataType(u32 type)
Definition J3DJointTree.h:73
void makeHierarchy(J3DJoint *, J3DModelHierarchy const **, J3DMaterialTable *, J3DShapeTable *)
Definition J3DJointTree.cpp:26
void setBasicMtxCalc(J3DMtxCalc *calc)
Definition J3DJointTree.h:51
u8 getDrawMtxFlag(u16 idx) const
Definition J3DJointTree.h:61
bool checkFlag(u32 flag) const
Definition J3DJointTree.h:74
virtual ~J3DJointTree()
Definition J3DJointTree.h:47
u16 * getWEvlpMixMtxIndex() const
Definition J3DJointTree.h:55
J3DJoint * mRootNode
Definition J3DJointTree.h:83
J3DJoint * getRootNode()
Definition J3DJointTree.h:65
Definition J3DJoint.h:63
Definition J3DMaterialAttach.h:18
Definition J3DModelLoader.h:252
Definition J3DMtxBuffer.h:12
Definition J3DJoint.h:17
Definition J3DShapeTable.h:13
Definition JUTNameTab.h:27
f32 Mtx[3][4]
Definition mtx.h:25
unsigned long u32
Definition types.h:12
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
unsigned char u8
Definition types.h:8
Definition J3DJointTree.h:23
u16 mDrawFullWgtMtxNum
Definition J3DJointTree.h:28
~J3DDrawMtxData()
Definition J3DVertex.cpp:219
u8 * mDrawMtxFlag
Definition J3DJointTree.h:29
J3DDrawMtxData()
Definition J3DVertex.cpp:213
u16 mEntryNum
Definition J3DJointTree.h:27
u16 * mDrawMtxIndex
Definition J3DJointTree.h:30
Definition J3DJointTree.h:12
u16 mValue
Definition J3DJointTree.h:14
u16 mType
Definition J3DJointTree.h:13
Definition mtx.h:13