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
4#include "JSystem/J3DAssert.h"
6
7class J3DJoint;
8class J3DMtxBuffer;
9class J3DMtxCalc;
10class JUTNameTab;
11
17 /* 0x0 */ u16 mType;
18 /* 0x2 */ u16 mValue;
19};
20
22
30
31 /* 0x0 */ u16 mEntryNum;
33 /* 0x4 */ u8* mDrawMtxFlag;
34 /* 0x8 */ u16* mDrawMtxIndex;
35}; // Size: 0xC
36
37class J3DShapeTable;
38
44public:
49
50 virtual void calc(J3DMtxBuffer*, Vec const&, f32 const (&)[3][4]);
51 virtual ~J3DJointTree() {}
52
53 const J3DModelHierarchy* getHierarchy() const { return mHierarchy; }
54 void setHierarchy(J3DModelHierarchy* hierarchy) { mHierarchy = hierarchy; }
56 u16 getWEvlpMtxNum() const { return mWEvlpMtxNum; }
58 u8 getWEvlpMixMtxNum(u16 idx) const { return mWEvlpMixMtxNum[idx]; }
63 u16 getJointNum() const { return mJointNum; }
65 u8 getDrawMtxFlag(u16 idx) const { return mDrawMtxData.mDrawMtxFlag[idx]; }
66 u16 getDrawMtxIndex(u16 idx) const { return mDrawMtxData.mDrawMtxIndex[idx]; }
68 JUTNameTab* getJointName() const { return mJointName; }
71 J3D_ASSERT_RANGE(139, idx < mJointNum);
72 return mJointNodePointer[idx];
73 }
75 Mtx& getInvJointMtx(int idx) { return mInvJointMtx[idx]; }
77 void setModelDataType(u32 type) { mModelDataType = type; }
78 bool checkFlag(u32 flag) const { return mFlags & flag ? true : false; }
79 void setFlag(u32 flag) { mFlags = flag; }
80
81private:
82 friend class J3DModelLoader;
83
85 /* 0x08 */ u32 mFlags;
86 /* 0x0C */ u32 mModelDataType;
87 /* 0x10 */ J3DJoint* mRootNode;
90 /* 0x1C */ u16 mJointNum;
91 /* 0x1E */ u16 mWEvlpMtxNum;
92 /* 0x20 */ u8* mWEvlpMixMtxNum;
94 /* 0x28 */ f32* mWEvlpMixWeight;
95 /* 0x2C */ Mtx* mInvJointMtx;
98 /* 0x40 */ u32 field_0x40;
100}; // Size: 0x48
101
102#endif /* J3DJOINTTREE_H */
static BOOL flag
Definition DEMOAVX.c:20
Definition J3DJointTree.h:43
void setHierarchy(J3DModelHierarchy *hierarchy)
Definition J3DJointTree.h:54
J3DMtxCalc * mBasicMtxCalc
Definition J3DJointTree.h:88
u16 mWEvlpMtxNum
Definition J3DJointTree.h:91
const J3DModelHierarchy * getHierarchy() const
Definition J3DJointTree.h:53
u16 * getWEvlpMixIndex() const
Definition J3DJointTree.h:57
JUTNameTab * mJointName
Definition J3DJointTree.h:99
J3DJointTree()
Definition J3DJointTree.cpp:18
u16 * getWEvlpImportantMtxIndex() const
Definition J3DJointTree.h:61
JUTNameTab * getJointName() const
Definition J3DJointTree.h:68
J3DMtxCalc * getBasicMtxCalc()
Definition J3DJointTree.h:74
u16 getDrawMtxNum() const
Definition J3DJointTree.h:64
u16 getWEvlpMtxNum() const
Definition J3DJointTree.h:56
J3DDrawMtxData mDrawMtxData
Definition J3DJointTree.h:97
Mtx * mInvJointMtx
Definition J3DJointTree.h:95
u32 field_0x40
Definition J3DJointTree.h:98
void findImportantMtxIndex()
Definition J3DJointTree.cpp:72
u16 getDrawMtxIndex(u16 idx) const
Definition J3DJointTree.h:66
J3DDrawMtxData * getDrawMtxData()
Definition J3DJointTree.h:67
Mtx & getInvJointMtx(int idx)
Definition J3DJointTree.h:75
u32 getModelDataType() const
Definition J3DJointTree.h:76
J3DJoint ** mJointNodePointer
Definition J3DJointTree.h:89
J3DModelHierarchy * mHierarchy
Definition J3DJointTree.h:84
void setFlag(u32 flag)
Definition J3DJointTree.h:79
u8 getWEvlpMixMtxNum(u16 idx) const
Definition J3DJointTree.h:58
f32 * getWEvlpMixWeight() const
Definition J3DJointTree.h:60
virtual void calc(J3DMtxBuffer *, Vec const &, f32 const (&)[3][4])
Definition J3DJointTree.cpp:101
u8 * mWEvlpMixMtxNum
Definition J3DJointTree.h:92
u16 mJointNum
Definition J3DJointTree.h:90
u16 * mWEvlpImportantMtxIdx
Definition J3DJointTree.h:96
u32 mModelDataType
Definition J3DJointTree.h:86
u32 mFlags
Definition J3DJointTree.h:85
u16 * mWEvlpMixMtxIndex
Definition J3DJointTree.h:93
f32 * mWEvlpMixWeight
Definition J3DJointTree.h:94
J3DJoint * getJointNodePointer(u16 idx) const
Definition J3DJointTree.h:70
u16 getJointNum() const
Definition J3DJointTree.h:63
u16 getDrawFullWgtMtxNum() const
Definition J3DJointTree.h:62
void setModelDataType(u32 type)
Definition J3DJointTree.h:77
void makeHierarchy(J3DJoint *, J3DModelHierarchy const **, J3DMaterialTable *, J3DShapeTable *)
Definition J3DJointTree.cpp:24
void setBasicMtxCalc(J3DMtxCalc *calc)
Definition J3DJointTree.h:55
u8 getDrawMtxFlag(u16 idx) const
Definition J3DJointTree.h:65
bool checkFlag(u32 flag) const
Definition J3DJointTree.h:78
virtual ~J3DJointTree()
Definition J3DJointTree.h:51
u16 * getWEvlpMixMtxIndex() const
Definition J3DJointTree.h:59
J3DJoint * mRootNode
Definition J3DJointTree.h:87
J3DJoint * getRootNode()
Definition J3DJointTree.h:69
Definition J3DJoint.h:66
Definition J3DMaterialAttach.h:18
Definition J3DModelLoader.h:254
Definition J3DMtxBuffer.h:13
Definition J3DJoint.h:17
Definition J3DShapeTable.h:15
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:27
u16 mDrawFullWgtMtxNum
Definition J3DJointTree.h:32
~J3DDrawMtxData()
Definition J3DVertex.cpp:223
u8 * mDrawMtxFlag
Definition J3DJointTree.h:33
J3DDrawMtxData()
Definition J3DVertex.cpp:217
u16 mEntryNum
Definition J3DJointTree.h:31
u16 * mDrawMtxIndex
Definition J3DJointTree.h:34
Definition J3DJointTree.h:16
u16 mValue
Definition J3DJointTree.h:18
u16 mType
Definition J3DJointTree.h:17
Definition mtx.h:13