Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
J3DModel.h
Go to the documentation of this file.
1#ifndef J3DMODEL_H
2#define J3DMODEL_H
3
6#include "dolphin/types.h"
7
10 /* 0x00001 */ J3DMdlFlag_Unk00001 = 0x1,
11 /* 0x00002 */ J3DMdlFlag_Unk00002 = 0x2,
12 /* 0x00004 */ J3DMdlFlag_SkinPosCpu = 0x4,
13 /* 0x00008 */ J3DMdlFlag_SkinNrmCpu = 0x8,
14 /* 0x00010 */ J3DMdlFlag_Unk00010 = 0x10,
15 /* 0x20000 */ J3DMdlFlag_Unk20000 = 0x20000,
16 /* 0x40000 */ J3DMdlFlag_Unk40000 = 0x40000,
17 /* 0x80000 */ J3DMdlFlag_Unk80000 = 0x80000,
18};
19
25 virtual void calc(J3DModel* model);
26};
27
33 virtual void unk();
34 virtual void calc(J3DModelData* mpModelData);
35};
36
38
43class J3DModel {
44public:
46 initialize();
47 }
48 J3DModel(J3DModelData* param_0, u32 param_1, u32 param_2) {
49 initialize();
50 entryModelData(param_0, param_1, param_2);
51 }
52
53 /* 80327100 */ void initialize();
54 /* 80327184 */ s32 entryModelData(J3DModelData*, u32, u32);
55 /* 80327300 */ s32 createShapePacket(J3DModelData*);
56 /* 803273CC */ s32 createMatPacket(J3DModelData*, u32);
57 /* 803275FC */ s32 newDifferedDisplayList(u32);
58 /* 8032767C */ void lock();
59 /* 803276B4 */ void unlock();
60 /* 803279A0 */ void diff();
61 /* 80327A2C */ s32 setDeformData(J3DDeformData*, u32);
62 /* 80327AA0 */ s32 setSkinDeform(J3DSkinDeform*, u32);
63 /* 80327BD4 */ void calcAnmMtx();
64 /* 80327C58 */ void calcWeightEnvelopeMtx();
65 /* 80328190 */ void calcNrmMtx();
66 /* 803281B4 */ void calcBumpMtx();
67 /* 803282B8 */ void calcBBoardMtx();
68 /* 803282EC */ void prepareShapePackets();
69
70 /* 80327CA4 */ virtual void update();
71 /* 80327E4C */ virtual void entry();
72 /* 80327CF0 */ virtual void calc();
73 /* 803276EC */ virtual void calcMaterial();
74 /* 80327858 */ virtual void calcDiffTexMtx();
75 /* 80327F40 */ virtual void viewCalc();
76 /* 80328350 */ virtual ~J3DModel() {}
77
79
80 void onFlag(u32 flag) { mFlags |= flag; }
81 void offFlag(u32 flag) { mFlags &= ~flag; }
82 bool checkFlag(u32 flag) const { return (mFlags & flag) ? true : false; }
83
85
87 void setBaseTRMtx(Mtx m) { MTXCopy(m, mBaseTransformMtx); }
88 u32 getMtxCalcMode() const { return mFlags & 0x03; }
90 J3DMatPacket* getMatPacket(u16 idx) const { return &mMatPacket[idx]; }
91 J3DShapePacket* getShapePacket(u16 idx) const { return &mShapePacket[idx]; }
93 void setScaleFlag(int idx, u8 flag) { mMtxBuffer->setScaleFlag(idx, flag); }
94 Mtx33* getBumpMtxPtr(int idx) const { return mMtxBuffer->getBumpMtxPtr(idx); }
95 Mtx33* getNrmMtxPtr() const { return mMtxBuffer->getNrmMtxPtr(); }
96 Mtx* getDrawMtxPtr() const { return mMtxBuffer->getDrawMtxPtr(); }
97 void setBaseScale(const Vec& scale) { mBaseScale = scale; }
98 void setUserArea(u32 area) { mUserArea = area; }
99 u32 getUserArea() const { return mUserArea; }
103
105 /* 0x08 */ u32 mFlags;
106 /* 0x0C */ u32 mDiffFlag;
108 /* 0x14 */ u32 mUserArea;
109 /* 0x18 */ Vec mBaseScale;
111 /* 0x54 */ Mtx mInternalView;
121};
122
123#endif /* J3DMODEL_H */
static BOOL flag
Definition DEMOAVX.c:20
void(* J3DCalcCallBack)(J3DModel *, u32 timing)
Definition J3DModel.h:37
J3DMdlFlag
Definition J3DModel.h:8
@ J3DMdlFlag_Unk00001
Definition J3DModel.h:10
@ J3DMdlFlag_SkinPosCpu
Definition J3DModel.h:12
@ J3DMdlFlag_SkinNrmCpu
Definition J3DModel.h:13
@ J3DMdlFlag_Unk80000
Definition J3DModel.h:17
@ J3DMdlFlag_Unk20000
Definition J3DModel.h:15
@ J3DMdlFlag_Unk00002
Definition J3DModel.h:11
@ J3DMdlFlag_Unk40000
Definition J3DModel.h:16
@ J3DMdlFlag_None
Definition J3DModel.h:9
@ J3DMdlFlag_Unk00010
Definition J3DModel.h:14
Definition J3DCluster.h:75
Definition J3DPacket.h:206
Definition J3DMtxBuffer.h:12
Mtx33 * getNrmMtxPtr() const
Definition J3DMtxBuffer.h:42
Mtx * getDrawMtxPtr() const
Definition J3DMtxBuffer.h:39
void setScaleFlag(int idx, u8 flag)
Definition J3DMtxBuffer.h:33
MtxP getAnmMtx(int idx) const
Definition J3DMtxBuffer.h:28
void setAnmMtx(int i, Mtx m)
Definition J3DMtxBuffer.h:29
Mtx33 * getBumpMtxPtr(int idx) const
Definition J3DMtxBuffer.h:45
Definition J3DPacket.h:174
Definition J3DSkinDeform.h:34
Definition J3DVertex.h:75
static SECTION_RODATA u8 const jointNo[4]
Definition d_a_npc_besu.cpp:1776
int m
Definition e_atan2.c:62
f32 Mtx33[3][3]
Definition mtx.h:32
f32(* MtxP)[4]
Definition mtx.h:35
f32 Mtx[3][4]
Definition mtx.h:22
Definition d_a_hozelda.cpp:52
Definition d_a_hozelda.cpp:146
virtual void calcMaterial()
Definition J3DModel.cpp:224
J3DUnkCalc1 * mUnkCalc1
Definition J3DModel.h:119
J3DVertexBuffer * getVertexBuffer()
Definition J3DModel.h:89
J3DSkinDeform * mSkinDeform
Definition J3DModel.h:117
void setAnmMtx(int jointNo, Mtx m)
Definition J3DModel.h:101
u32 getUserArea() const
Definition J3DModel.h:99
Mtx33 * getBumpMtxPtr(int idx) const
Definition J3DModel.h:94
s32 createMatPacket(J3DModelData *, u32)
Definition J3DModel.cpp:113
s32 newDifferedDisplayList(u32)
Definition J3DModel.cpp:194
void calcNrmMtx()
Definition J3DModel.cpp:498
Mtx mInternalView
Definition J3DModel.h:111
J3DMtxBuffer * getMtxBuffer() const
Definition J3DModel.h:92
J3DCalcCallBack mCalcCallBack
Definition J3DModel.h:107
void calcBBoardMtx()
Definition J3DModel.cpp:522
J3DMatPacket * mMatPacket
Definition J3DModel.h:114
u32 mDiffFlag
Definition J3DModel.h:106
J3DShapePacket * getShapePacket(u16 idx) const
Definition J3DModel.h:91
Vec mBaseScale
Definition J3DModel.h:109
virtual void calc()
Definition J3DModel.cpp:387
J3DModel(J3DModelData *param_0, u32 param_1, u32 param_2)
Definition J3DModel.h:48
s32 entryModelData(J3DModelData *, u32, u32)
Definition J3DModel.cpp:38
J3DMatPacket * getMatPacket(u16 idx) const
Definition J3DModel.h:90
Mtx * getDrawMtxPtr() const
Definition J3DModel.h:96
J3DModelData * getModelData()
Definition J3DModel.h:78
s32 setSkinDeform(J3DSkinDeform *, u32)
Definition J3DModel.cpp:310
void offFlag(u32 flag)
Definition J3DModel.h:81
u32 getMtxCalcMode() const
Definition J3DModel.h:88
u32 mUserArea
Definition J3DModel.h:108
void diff()
Definition J3DModel.cpp:282
void unlock()
Definition J3DModel.cpp:215
J3DShapePacket * mShapePacket
Definition J3DModel.h:115
virtual void update()
Definition J3DModel.cpp:380
virtual ~J3DModel()
Definition J3DModel.h:76
J3DUnkCalc2 * mUnkCalc2
Definition J3DModel.h:120
J3DMtxBuffer * mMtxBuffer
Definition J3DModel.h:112
Mtx33 * getNrmMtxPtr() const
Definition J3DModel.h:95
s32 setDeformData(J3DDeformData *, u32)
Definition J3DModel.cpp:291
Mtx mBaseTransformMtx
Definition J3DModel.h:110
void calcAnmMtx()
Definition J3DModel.cpp:359
void onFlag(u32 flag)
Definition J3DModel.h:80
void initialize()
Definition J3DModel.cpp:12
virtual void viewCalc()
Definition J3DModel.cpp:461
J3DDeformData * mDeformData
Definition J3DModel.h:116
void setBaseTRMtx(Mtx m)
Definition J3DModel.h:87
Mtx & getBaseTRMtx()
Definition J3DModel.h:86
void prepareShapePackets()
Definition J3DModel.cpp:529
J3DModel()
Definition J3DModel.h:45
virtual void calcDiffTexMtx()
Definition J3DModel.cpp:258
void setUserArea(u32 area)
Definition J3DModel.h:98
J3DVtxColorCalc * mVtxColorCalc
Definition J3DModel.h:118
void setBaseScale(const Vec &scale)
Definition J3DModel.h:97
void lock()
Definition J3DModel.cpp:206
bool isCpuSkinningOn() const
Definition J3DModel.h:84
s32 createShapePacket(J3DModelData *)
Definition J3DModel.cpp:91
void calcBumpMtx()
Definition J3DModel.cpp:503
bool checkFlag(u32 flag) const
Definition J3DModel.h:82
void setScaleFlag(int idx, u8 flag)
Definition J3DModel.h:93
u32 mFlags
Definition J3DModel.h:105
J3DModelData * mModelData
Definition J3DModel.h:104
MtxP getAnmMtx(int jointNo)
Definition J3DModel.h:102
virtual void entry()
Definition J3DModel.cpp:434
void calcWeightEnvelopeMtx()
Definition J3DModel.cpp:371
J3DVertexBuffer mVertexBuffer
Definition J3DModel.h:113
Vec * getBaseScale()
Definition J3DModel.h:100
Definition J3DModel.h:24
virtual void calc(J3DModel *model)
Definition J3DModel.h:32
virtual void unk()
virtual void calc(J3DModelData *mpModelData)
Definition J3DVertex.h:16
Definition d_a_hozelda.cpp:18
unsigned long u32
Definition types.h:9
unsigned short int u16
Definition types.h:7
signed long s32
Definition types.h:8
unsigned char u8
Definition types.h:5
static VITiming timing[10]
Definition vi.c:101