Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
J3DVertex.h
Go to the documentation of this file.
1#ifndef J3DVERTEX_H
2#define J3DVERTEX_H
3
4#include <dolphin/gx.h>
5#include "dolphin/mtx.h"
6
7typedef struct _GXColor GXColor;
8class J3DModel;
10class J3DVertexBuffer;
11
17 void calc(J3DModel*);
18 virtual void calc(J3DVertexBuffer*);
19
20 /* 0x0 */ void* vtable; // inlined vtable?
21 /* 0x4 */ u32 mFlags;
23};
24
30public:
33
34 void* getVtxPosArray() const { return mVtxPosArray; }
35 void* getVtxNrmArray() const { return mVtxNrmArray; }
36 GXColor* getVtxColorArray(u8 idx) const { return mVtxColorArray[idx]; }
37 void* getVtxTexCoordArray(u8 idx) const { return mVtxTexCoordArray[idx]; }
38 void* getVtxNBTArray() const { return mVtxNBTArray; }
39 u32 getNrmNum() const { return mNrmNum; }
40 u32 getVtxNum() const { return mVtxNum; }
42 u8 getVtxPosFrac() const { return mVtxPosFrac; }
43 u8 getVtxNrmFrac() const { return mVtxNrmFrac; }
44 int getVtxPosType() const { return mVtxPosType; }
45 int getVtxNrmType() const { return mVtxNrmType; }
46
47 void setVtxPosFrac(u8 frac) { mVtxPosFrac = frac; }
48 void setVtxPosType(GXCompType type) { mVtxPosType = type; }
49 void setVtxNrmFrac(u8 frac) { mVtxNrmFrac = frac; }
50 void setVtxNrmType(GXCompType type) { mVtxNrmType = type; }
51
52private:
53 friend class J3DModelLoader;
54
55 /* 0x00 */ u32 mVtxNum;
56 /* 0x04 */ u32 mNrmNum;
57 /* 0x08 */ u32 mColNum;
58 /* 0x0C */ u32 mTexCoordNum;
59 /* 0x10 */ u32 mPacketNum;
61 /* 0x18 */ void* mVtxPosArray;
62 /* 0x1C */ void* mVtxNrmArray;
63 /* 0x20 */ void* mVtxNBTArray;
64 /* 0x24 */ GXColor* mVtxColorArray[2];
65 /* 0x2C */ void* mVtxTexCoordArray[8];
66 /* 0x4C */ u8 mVtxPosFrac;
68 /* 0x54 */ u8 mVtxNrmFrac;
70};
71
77public:
79
81 void init();
83 void setArray() const;
89
90 void setCurrentVtxPos(void* pVtxPos) { mCurrentVtxPos = pVtxPos; }
91 void* getCurrentVtxPos() { return mCurrentVtxPos; }
92
93 void setCurrentVtxNrm(void* pVtxNrm) { mCurrentVtxNrm = pVtxNrm; }
94 void* getCurrentVtxNrm() { return mCurrentVtxNrm; }
95
96 void setCurrentVtxCol(GXColor* pVtxCol) { mCurrentVtxCol = pVtxCol; }
97
103
104 void* getTransformedVtxPos(int idx) { return mTransformedVtxPosArray[idx]; }
105 void* getTransformedVtxNrm(int idx) { return mTransformedVtxNrmArray[idx]; }
107
113
119
121 void* temp = mVtxPosArray[0];
123 mVtxPosArray[1] = temp;
124 }
125
127 void* temp = mVtxNrmArray[0];
129 mVtxNrmArray[1] = temp;
130 }
131
133 return mVtxPosArray[index];
134 }
135
137 return mVtxNrmArray[index];
138 }
139
140private:
142 /* 0x04 */ void* mVtxPosArray[2];
143 /* 0x0C */ void* mVtxNrmArray[2];
144 /* 0x14 */ GXColor* mVtxColArray[2];
145 /* 0x1C */ void* mTransformedVtxPosArray[2];
146 /* 0x24 */ void* mTransformedVtxNrmArray[2];
147 /* 0x2C */ void* mCurrentVtxPos;
148 /* 0x30 */ void* mCurrentVtxNrm;
150}; // Size: 0x38
151
152#endif /* J3DVERTEX_H */
Definition J3DAnimation.h:798
Definition J3DModelLoader.h:252
Definition J3DModel.h:43
Definition J3DVertex.h:76
void * mTransformedVtxNrmArray[2]
Definition J3DVertex.h:146
void swapVtxNrmArrayPointer()
Definition J3DVertex.h:126
s32 copyLocalVtxNrmArray(u32)
Definition J3DVertex.cpp:104
void * getVtxPosArrayPointer(int index)
Definition J3DVertex.h:132
void * mCurrentVtxNrm
Definition J3DVertex.h:148
GXColor * mCurrentVtxCol
Definition J3DVertex.h:149
void * getTransformedVtxNrm(int idx)
Definition J3DVertex.h:105
s32 allocTransformedVtxPosArray()
Definition J3DVertex.cpp:183
void * getVtxNrmArrayPointer(int index)
Definition J3DVertex.h:136
void * getTransformedVtxPos(int idx)
Definition J3DVertex.h:104
void setCurrentVtxPos(void *pVtxPos)
Definition J3DVertex.h:90
void * mVtxNrmArray[2]
Definition J3DVertex.h:143
J3DVertexBuffer()
Definition J3DVertex.h:78
J3DVertexData * getVertexData() const
Definition J3DVertex.h:106
void * mVtxPosArray[2]
Definition J3DVertex.h:142
~J3DVertexBuffer()
Definition J3DVertex.cpp:68
void swapTransformedVtxNrm()
Definition J3DVertex.h:114
void setArray() const
Definition J3DVertex.cpp:70
void * mTransformedVtxPosArray[2]
Definition J3DVertex.h:145
void init()
Definition J3DVertex.cpp:52
void swapTransformedVtxPos()
Definition J3DVertex.h:108
void setCurrentVtxNrm(void *pVtxNrm)
Definition J3DVertex.h:93
void swapVtxPosArrayPointer()
Definition J3DVertex.h:120
void setVertexData(J3DVertexData *)
Definition J3DVertex.cpp:33
void setCurrentVtxCol(GXColor *pVtxCol)
Definition J3DVertex.h:96
void * getCurrentVtxPos()
Definition J3DVertex.h:91
GXColor * mVtxColArray[2]
Definition J3DVertex.h:144
s32 copyLocalVtxArray(u32)
Definition J3DVertex.cpp:132
J3DVertexData * mVtxData
Definition J3DVertex.h:141
void frameInit()
Definition J3DVertex.h:98
void * getCurrentVtxNrm()
Definition J3DVertex.h:94
s32 copyLocalVtxPosArray(u32)
Definition J3DVertex.cpp:76
void * mCurrentVtxPos
Definition J3DVertex.h:147
s32 allocTransformedVtxNrmArray()
Definition J3DVertex.cpp:198
Definition J3DVertex.h:29
u32 mPacketNum
Definition J3DVertex.h:59
GXCompType mVtxNrmType
Definition J3DVertex.h:69
void setVtxNrmFrac(u8 frac)
Definition J3DVertex.h:49
u32 mTexCoordNum
Definition J3DVertex.h:58
void * getVtxTexCoordArray(u8 idx) const
Definition J3DVertex.h:37
u32 getVtxNum() const
Definition J3DVertex.h:40
~J3DVertexData()
Definition J3DVertex.h:32
void setVtxNrmType(GXCompType type)
Definition J3DVertex.h:50
J3DVertexData()
Definition J3DVertex.cpp:9
void * mVtxTexCoordArray[8]
Definition J3DVertex.h:65
u32 getNrmNum() const
Definition J3DVertex.h:39
u8 getVtxPosFrac() const
Definition J3DVertex.h:42
void * mVtxNBTArray
Definition J3DVertex.h:63
u32 mColNum
Definition J3DVertex.h:57
u32 mNrmNum
Definition J3DVertex.h:56
void * mVtxNrmArray
Definition J3DVertex.h:62
GXVtxAttrFmtList * mVtxAttrFmtList
Definition J3DVertex.h:60
GXVtxAttrFmtList * getVtxAttrFmtList() const
Definition J3DVertex.h:41
u8 getVtxNrmFrac() const
Definition J3DVertex.h:43
void * mVtxPosArray
Definition J3DVertex.h:61
void * getVtxNBTArray() const
Definition J3DVertex.h:38
GXColor * mVtxColorArray[2]
Definition J3DVertex.h:64
void * getVtxPosArray() const
Definition J3DVertex.h:34
u8 mVtxPosFrac
Definition J3DVertex.h:66
GXColor * getVtxColorArray(u8 idx) const
Definition J3DVertex.h:36
int getVtxPosType() const
Definition J3DVertex.h:44
void setVtxPosFrac(u8 frac)
Definition J3DVertex.h:47
void setVtxPosType(GXCompType type)
Definition J3DVertex.h:48
int getVtxNrmType() const
Definition J3DVertex.h:45
GXCompType mVtxPosType
Definition J3DVertex.h:67
u8 mVtxNrmFrac
Definition J3DVertex.h:68
void * getVtxNrmArray() const
Definition J3DVertex.h:35
u32 mVtxNum
Definition J3DVertex.h:55
static u8 index[20][3]
Definition GXDraw.c:434
enum _GXCompType GXCompType
unsigned long u32
Definition types.h:12
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
Definition J3DVertex.h:16
void * vtable
Definition J3DVertex.h:20
void calc(J3DModel *)
Definition J3DSkinDeform.cpp:673
J3DAnmVtxColor * mpVtxColor
Definition J3DVertex.h:22
virtual void calc(J3DVertexBuffer *)
u32 mFlags
Definition J3DVertex.h:21
Definition GXStruct.h:30
Definition GXStruct.h:67