blob: ca203805a8ac5a4899c05e6e91dcf29da7f01b71 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#ifndef J3DJOINTFACTORY_H
#define J3DJOINTFACTORY_H
#include "JSystem/J3DGraphBase/J3DTransform.h"
#include "dolphin/types.h"
class J3DJoint;
struct ResNTAB;
struct J3DJointInitData {
/* 0x00 */ u16 mKind;
/* 0x02 */ bool mScaleCompensate;
/* 0x04 */ J3DTransformInfo mTransformInfo;
/* 0x24 */ f32 mRadius;
/* 0x28 */ Vec mMin;
/* 0x2C */ Vec mMax;
}; // Size: 0x30
struct J3DJointBlock {
/* 0x00 */ u8 mMagic[4];
/* 0x04 */ u32 mSize;
/* 0x08 */ u16 mJointNum;
/* 0x0A */ u16 _pad;
/* 0x0C */ J3DJointInitData* mpJointInitData;
/* 0x10 */ u16* mpIndexTable;
/* 0x14 */ ResNTAB* mpNameTable;
}; // Size: 0x18
struct J3DJointFactory {
J3DJointFactory(J3DJointBlock const&);
J3DJoint* create(int);
/* 0x0 */ J3DJointInitData* mJointInitData;
/* 0x4 */ u16* mIndexTable;
u16 getKind(int no) const { return mJointInitData[mIndexTable[no]].mKind; }
u8 getScaleCompensate(int no) const { return mJointInitData[mIndexTable[no]].mScaleCompensate; }
const J3DTransformInfo& getTransformInfo(int no) const {
return mJointInitData[mIndexTable[no]].mTransformInfo;
}
f32 getRadius(int no) const { return mJointInitData[mIndexTable[no]].mRadius; }
Vec& getMin(int no) const { return mJointInitData[mIndexTable[no]].mMin; }
Vec& getMax(int no) const { return mJointInitData[mIndexTable[no]].mMax; }
};
#endif /* J3DJOINTFACTORY_H */
|