J3DModelData 99%

just one regswap
This commit is contained in:
Jasper St. Pierre
2023-09-24 00:30:34 -07:00
parent 2f918f337e
commit 2d719328f6
11 changed files with 202 additions and 133 deletions
@@ -46,6 +46,7 @@ public:
J3DJoint();
void entryIn();
void recursiveCalc();
void addMesh(J3DMaterial*);
J3DMaterial* getMesh() { return mMesh; }
u16 getJntNo() const { return mJntNo; }
@@ -25,16 +25,18 @@ struct J3DDrawMtxData {
}; // Size: 0xC
class J3DShapeTable;
class J3DShape;
class J3DJointTree {
public:
J3DJointTree();
void makeHierarchy(J3DJoint*, J3DModelHierarchy const**, J3DMaterialTable*, J3DShapeTable*);
J3DJointTree() { clear(); }
void clear();
void makeHierarchy(J3DNode*, const J3DModelHierarchy**, J3DMaterialTable*, J3DShape**);
void findImportantMtxIndex();
virtual void calc(J3DMtxBuffer*, Vec const&, f32 const (&)[3][4]);
virtual ~J3DJointTree();
virtual ~J3DJointTree() {}
J3DDrawMtxData * getDrawMtxData() { return &mDrawMtxData; }
u16 getWEvlpMtxNum() const { return mWEvlpMtxNum; }
u8 getWEvlpMixMtxNum(u16 idx) const { return mWEvlpMixMtxNum[idx]; }
u16 * getWEvlpMixIndex() const { return mWEvlpMixIndex; }
@@ -39,12 +39,16 @@ public:
J3DTexture* getTexture() const { return mTexture; }
JUTNameTab* getTextureName() const { return mTextureName; }
void setTexture(J3DTexture* pTexture) { mTexture = pTexture; }
void setTextureName(JUTNameTab* pTextureName) { mTextureName = pTextureName; }
JUTNameTab* getMaterialName() const { return mMaterialName; }
u16 getMaterialNum() const { return mMaterialNum; }
private:
friend class J3DJointTree;
/* 0x04 */ u16 mMaterialNum;
/* 0x06 */ u16 mUniqueMatNum;
/* 0x08 */ J3DMaterial** mMaterialNodePointer;
@@ -11,22 +11,29 @@
typedef struct _GXColor GXColor;
class JUTNameTab;
enum J3DMaterialCopyFlag {
J3DMatCopyFlag_Material = 0x01,
J3DMatCopyFlag_Texture = 0x02,
};
class J3DModelData {
public:
void clear();
J3DModelData();
s32 newSharedDisplayList(u32);
bool isDeformablePositionFormat() const;
void indexToPtr();
void makeSharedDL();
void simpleCalcMaterial(u16, f32 (*)[4]);
void syncJ3DSysPointers() const;
void syncJ3DSysFlags() const;
void initShapeNodes();
void sortVcdVatCmd();
void setMaterialTable(J3DMaterialTable*, J3DMaterialCopyFlag);
virtual ~J3DModelData();
J3DMaterialTable& getMaterialTable() { return mMaterialTable; }
JUTNameTab* getMaterialName() const { return mMaterialTable.getMaterialName(); }
J3DVertexData& getVertexData() { return mVertexData; }
GXVtxAttrFmtList* getVtxAttrFmtList() const { return ((J3DVertexData*)&mVertexData)->getVtxAttrFmtList(); }
u16 getShapeNum() const { return mShapeTable.getShapeNum(); }
u16 getMaterialNum() const { return mMaterialTable.getMaterialNum(); }
u16 getJointNum() const { return mJointTree.getJointNum(); }
@@ -36,6 +43,7 @@ public:
}
u32 getVtxNum() const { return mVertexData.getVtxNum(); }
u32 getNrmNum() const { return mVertexData.getNrmNum(); }
J3DDrawMtxData * getDrawMtxData() { return mJointTree.getDrawMtxData(); }
u8 getDrawMtxFlag(u16 idx) const { return mJointTree.getDrawMtxFlag(idx); }
u16 getDrawMtxIndex(u16 idx) const { return mJointTree.getDrawMtxIndex(idx); }
J3DShape* getShapeNodePointer(u16 idx) const { return mShapeTable.getShapeNodePointer(idx); }
@@ -45,6 +53,8 @@ public:
Mtx& getInvJointMtx(s32 idx) const { return mJointTree.getInvJointMtx(idx); }
J3DTexture* getTexture() const { return mMaterialTable.getTexture(); }
JUTNameTab* getTextureName() const { return mMaterialTable.getTextureName(); }
void setTexture(J3DTexture* pTexture) { mMaterialTable.setTexture(pTexture); }
void setTextureName(JUTNameTab* pTextureName) { mMaterialTable.setTextureName(pTextureName); }
u16 getWEvlpMtxNum() const { return mJointTree.getWEvlpMtxNum(); }
u16* getWEvlpMixMtxIndex() const { return mJointTree.getWEvlpMixIndex(); }
f32* getWEvlpMixWeight() const { return mJointTree.getWEvlpMixWeight(); }
@@ -74,10 +84,6 @@ public:
int removeMatColorAnimator(J3DAnmColor* anm) {
return mMaterialTable.removeMatColorAnimator(anm);
}
void syncJ3DSys() {
syncJ3DSysFlags();
syncJ3DSysPointers();
}
private:
/* 0x04 */ void* mpRawData;
+2 -1
View File
@@ -11,7 +11,8 @@ public:
virtual void init(Vec const& param_0, Mtx*);
virtual void entryIn();
virtual void calcIn();
virtual u32 getType();
virtual void calcOut();
virtual u32 getType() const;
virtual ~J3DNode();
J3DNode();
@@ -8,22 +8,16 @@ class JUTNameTab;
class J3DShapeTable {
public:
J3DShapeTable() {
inline void clear() {
mShapeNum = 0;
mShapeNodePointer = NULL;
}
void hide();
void show();
void initShapeNodes(J3DDrawMtxData*, J3DVertexData*);
void sortVcdVatCmd();
virtual ~J3DShapeTable();
u16 getShapeNum() const { return mShapeNum; }
J3DShape* getShapeNodePointer(u16 idx) const { return mShapeNodePointer[idx]; }
private:
/* 0x0 */ void *field_0x0;
/* 0x4 */ u16 mShapeNum;
/* 0x8 */ J3DShape** mShapeNodePointer;
}; // Size: 0x0C
+3 -5
View File
@@ -5,12 +5,10 @@
class J3DShapeDraw {
public:
/* 80314924 */ u32 countVertex(u32);
/* 80314974 */ void addTexMtxIndexInDL(u32, u32, u32);
/* 80314ABC */ J3DShapeDraw(u8 const*, u32);
/* 80314AD4 */ void draw() const;
J3DShapeDraw(u8 const*, u32);
void draw() const;
/* 80314B00 */ virtual ~J3DShapeDraw();
virtual ~J3DShapeDraw() {}
u8* getDisplayList() const { return (u8*)mDisplayList; }
u32 getDisplayListSize() const { return mDisplayListSize; }
+12 -12
View File
@@ -39,7 +39,7 @@ public:
void loadMtxIndx_NCPU(int, u16) const;
void loadMtxIndx_PNCPU(int, u16) const;
virtual ~J3DShapeMtx();
virtual ~J3DShapeMtx() {}
virtual u32 getType() const;
virtual u32 getUseMtxNum() const;
virtual u32 getUseMtxIndex(u16) const;
@@ -64,7 +64,7 @@ public:
J3DShapeMtxImm(u16 useMtxIndex) : J3DShapeMtx(useMtxIndex) {}
virtual ~J3DShapeMtxImm();
virtual ~J3DShapeMtxImm() {}
virtual u32 getType() const;
virtual void load() const;
virtual void loadNrmMtx(int, u16) const;
@@ -82,7 +82,7 @@ class J3DShapeMtxMultiImm : public J3DShapeMtxImm {
public:
J3DShapeMtxMultiImm(u16 useMtxIndex) : J3DShapeMtxImm(useMtxIndex) {}
virtual ~J3DShapeMtxMultiImm();
virtual ~J3DShapeMtxMultiImm() {}
virtual u32 getType() const;
virtual u32 getUseMtxNum() const;
virtual u32 getUseMtxIndex(u16) const;
@@ -94,13 +94,13 @@ private:
/* 0x8 */ u16* mUseMtxIndexTable;
};
class J3DShapeMtxConcatView : public J3DShapeMtx {
class J3DShapeMtxConcatView : public J3DShapeMtxImm {
public:
typedef void (J3DShapeMtxConcatView::*MtxLoadConcatView)(int mtxNo, u16 index) const;
J3DShapeMtxConcatView(u16 useMtxIndex) : J3DShapeMtx(useMtxIndex) {}
J3DShapeMtxConcatView(u16 useMtxIndex) : J3DShapeMtxImm(useMtxIndex) {}
virtual ~J3DShapeMtxConcatView();
virtual ~J3DShapeMtxConcatView() {}
virtual u32 getType() const;
virtual void load() const;
virtual void loadNrmMtx(int, u16) const;
@@ -120,7 +120,7 @@ class J3DShapeMtxBBoardImm : public J3DShapeMtxImm {
public:
J3DShapeMtxBBoardImm(u16 useMtxIndex) : J3DShapeMtxImm(useMtxIndex) {}
virtual ~J3DShapeMtxBBoardImm();
virtual ~J3DShapeMtxBBoardImm() {}
virtual u32 getType() const;
virtual void load() const;
};
@@ -129,7 +129,7 @@ class J3DShapeMtxYBBoardImm : public J3DShapeMtxImm {
public:
J3DShapeMtxYBBoardImm(u16 useMtxIndex) : J3DShapeMtxImm(useMtxIndex) {}
virtual ~J3DShapeMtxYBBoardImm();
virtual ~J3DShapeMtxYBBoardImm() {}
virtual u32 getType() const;
virtual void load() const;
};
@@ -138,7 +138,7 @@ class J3DShapeMtxYBBoardConcatView : public J3DShapeMtxConcatView {
public:
J3DShapeMtxYBBoardConcatView(u16 useMtxIndex) : J3DShapeMtxConcatView(useMtxIndex) {}
virtual ~J3DShapeMtxYBBoardConcatView();
virtual ~J3DShapeMtxYBBoardConcatView() {}
virtual u32 getType() const;
virtual void load() const;
};
@@ -147,7 +147,7 @@ class J3DShapeMtxBBoardConcatView : public J3DShapeMtxConcatView {
public:
J3DShapeMtxBBoardConcatView(u16 useMtxIndex) : J3DShapeMtxConcatView(useMtxIndex) {}
virtual ~J3DShapeMtxBBoardConcatView();
virtual ~J3DShapeMtxBBoardConcatView() {}
virtual u32 getType() const;
virtual void load() const;
};
@@ -157,7 +157,7 @@ public:
J3DShapeMtxMulti(u16 useMtxIndex, u16 useMtxNum, u16* useMtxIndexTable)
: J3DShapeMtx(useMtxIndex), mUseMtxNum(useMtxNum), mUseMtxIndexTable(useMtxIndexTable) {}
virtual ~J3DShapeMtxMulti();
virtual ~J3DShapeMtxMulti() {}
virtual u32 getType() const;
virtual u32 getUseMtxNum() const;
virtual u32 getUseMtxIndex(u16) const;
@@ -175,7 +175,7 @@ public:
: J3DShapeMtxConcatView(useMtxIndex), mUseMtxNum(useMtxNum),
mUseMtxIndexTable(useMtxIndexTable) {}
virtual ~J3DShapeMtxMultiConcatView();
virtual ~J3DShapeMtxMultiConcatView() {}
virtual u32 getType() const;
virtual u32 getUseMtxNum() const;
virtual u32 getUseMtxIndex(u16) const;
+2
View File
@@ -24,6 +24,8 @@ public:
J3DVertexData();
~J3DVertexData();
inline void clear() { mPacketNum = 0; }
void* getVtxPosArray() const { return mVtxPosArray; }
void* getVtxNrmArray() const { return mVtxNrmArray; }
GXColor* getVtxColorArray(u8 idx) const { return mVtxColorArray[idx]; }
+135 -20
View File
@@ -4,64 +4,179 @@
//
#include "JSystem/J3DGraphAnimator/J3DModelData.h"
#include "JSystem/J3DGraphAnimator/J3DShapeTable.h"
#include "JSystem/JUtility/JUTNameTab.h"
#include "dolphin/types.h"
/* 802ECF30-802ECF70 .text clear__12J3DJointTreeFv */
void J3DJointTree::clear() {
/* Nonmatching */
mHierarchy = NULL;
mFlags = 0;
mModelDataType = 0;
mRootNode = NULL;
mBasicMtxCalc = NULL;
mJointNum = NULL;
mJointNodePointer = NULL;
field_0x40 = NULL;
mWEvlpMtxNum = 0;
mWEvlpMixMtxNum = NULL;
mWEvlpMixIndex = NULL;
mWEvlpMixWeight = NULL;
mInvJointMtx = NULL;
mJointName = NULL;
}
/* 802ECF70-802ED108 .text makeHierarchy__12J3DJointTreeFP7J3DNodePPC17J3DModelHierarchyP16J3DMaterialTablePP8J3DShape */
void J3DJointTree::makeHierarchy(J3DNode*, const J3DModelHierarchy**, J3DMaterialTable*, J3DShape**) {
/* Nonmatching */
void J3DJointTree::makeHierarchy(J3DNode* pRootNode, const J3DModelHierarchy** pHierarchy, J3DMaterialTable* pMaterialTable, J3DShape** pShapeTable) {
enum {
kTypeEnd = 0x00,
kTypeBeginChild = 0x01,
kTypeEndChild = 0x02,
kTypeJoint = 0x10,
kTypeMaterial = 0x11,
kTypeShape = 0x12,
};
J3DNode * pCurNode = pRootNode;
while (true) {
J3DNode * pNewNode = NULL;
J3DMaterial * pNewMaterial = NULL;
J3DShape * pNewShape = NULL;
const J3DModelHierarchy * inf = *pHierarchy;
switch (inf->mType) {
case kTypeBeginChild:
*pHierarchy = inf + 1;
makeHierarchy(pCurNode, pHierarchy, pMaterialTable, pShapeTable);
break;
case kTypeEndChild:
*pHierarchy = inf + 1;
return;
case kTypeEnd:
return;
case kTypeJoint:
{
J3DJoint ** pJoints = mJointNodePointer;
*pHierarchy = inf + 1;
pNewNode = pJoints[inf->mValue];
}
break;
case kTypeMaterial:
*pHierarchy = inf + 1;
pNewMaterial = pMaterialTable->mMaterialNodePointer[inf->mValue];
break;
case kTypeShape:
*pHierarchy = inf + 1;
pNewShape = pShapeTable[inf->mValue];
break;
}
if (pNewNode != NULL) {
pCurNode = pNewNode;
if (pRootNode == NULL)
mRootNode = (J3DJoint*)pNewNode;
else
pRootNode->appendChild(pNewNode);
} else if (pNewMaterial != NULL && pRootNode->getType() == 'NJNT') {
((J3DJoint*)pRootNode)->addMesh(pNewMaterial);
pNewMaterial->mJoint = ((J3DJoint*)pRootNode);
} else if (pNewShape != NULL && pNewNode->getType() == 'NJNT') {
pNewMaterial = ((J3DJoint*)pRootNode)->getMesh();
pNewMaterial->mShape = pNewShape;
pNewShape->mMaterial = pNewMaterial;
}
}
}
/* 802ED108-802ED130 .text clear__12J3DModelDataFv */
void J3DModelData::clear() {
/* Nonmatching */
mpRawData = NULL;
mFlags = 0;
mbHasBumpArray = 0;
mbHasBillboard = 0;
mShapeTable.clear();
mName = NULL;
mVertexData.clear();
}
/* 802ED130-802ED1A8 .text __ct__12J3DModelDataFv */
J3DModelData::J3DModelData() {
/* Nonmatching */
clear();
}
/* 802ED1A8-802ED238 .text __dt__12J3DModelDataFv */
J3DModelData::~J3DModelData() {
/* Nonmatching */
}
/* 802ED238-802ED2A4 .text initShapeNodes__12J3DModelDataFv */
void J3DModelData::initShapeNodes() {
/* Nonmatching */
for (u16 i = 0; i < getShapeNum(); i++) {
J3DShape *pShape = getShapeNodePointer(i);
pShape->setDrawMtxDataPointer(getDrawMtxData());
pShape->setVertexDataPointer(&getVertexData());
pShape->makeVcdVatCmd();
}
}
/* 802ED2A4-802ED340 .text sortVcdVatCmd__12J3DModelDataFv */
void J3DModelData::sortVcdVatCmd() {
/* Nonmatching */
for (u16 i = 0; i < getShapeNum(); i++)
for (u16 j = 0; j < i; j++)
if (getShapeNodePointer(i)->isSameVcdVatCmd(getShapeNodePointer(j)))
getShapeNodePointer(i)->setVcdVatCmd(getShapeNodePointer(j)->getVcdVatCmd());
}
/* 802ED340-802ED3E8 .text indexToPtr__12J3DModelDataFv */
void J3DModelData::indexToPtr() {
/* Nonmatching */
j3dSys.setTexture(getTexture());
GDLObj dlObj;
for (u16 i = 0; i < getMaterialNum(); i++) {
J3DDisplayListObj *pDLObj = getMaterialNodePointer(i)->getSharedDisplayListObj();
GDInitGDLObj(&dlObj, pDLObj->getDisplayList(0), pDLObj->getDisplayListSize());
GDSetCurrent(&dlObj);
getMaterialNodePointer(i)->getTevBlock()->indexToPtr();
}
GDSetCurrent(NULL);
}
/* 802ED3E8-802ED434 .text isDeformablePositionFormat__12J3DModelDataCFv */
void J3DModelData::isDeformablePositionFormat() const {
/* Nonmatching */
bool J3DModelData::isDeformablePositionFormat() const {
GXVtxAttrFmtList *vtxAttr = getVtxAttrFmtList();
for (; vtxAttr->mAttrib != GX_VA_NULL; vtxAttr++) {
switch (vtxAttr->mAttrib) {
case GX_VA_POS:
if (vtxAttr->mCompType == GX_F32 && vtxAttr->mCompCnt == GX_POS_XYZ)
return true;
break;
}
}
return false;
}
/* 802ED434-802ED4F4 .text setMaterialTable__12J3DModelDataFP16J3DMaterialTable19J3DMaterialCopyFlag */
void J3DModelData::setMaterialTable(J3DMaterialTable*, J3DMaterialCopyFlag) {
/* Nonmatching */
void J3DModelData::setMaterialTable(J3DMaterialTable* pMaterialTable, J3DMaterialCopyFlag flag) {
if (flag & J3DMatCopyFlag_Material) {
for (u16 i = 0; i < pMaterialTable->getMaterialNum(); i++) {
JUTNameTab *pMaterialName = getMaterialName();
const char *pName = pMaterialTable->getMaterialName()->getName(i);
s32 nameIndex = pMaterialName->getIndex(pName);
if (nameIndex != -1)
getMaterialNodePointer(nameIndex)->copy(pMaterialTable->getMaterialNodePointer(i));
}
}
if ((flag & J3DMatCopyFlag_Texture) && pMaterialTable->getTexture()->getNum() != 0) {
setTexture(pMaterialTable->getTexture());
setTextureName(pMaterialTable->getTextureName());
}
}
/* 802ED4F4-802ED500 .text getType__7J3DNodeCFv */
void J3DNode::getType() const {
/* Nonmatching */
}
/* 802ED500-802ED564 .text __dt__12J3DJointTreeFv */
J3DJointTree::~J3DJointTree() {
/* Nonmatching */
u32 J3DNode::getType() const {
return 'NNON';
}
+22 -76
View File
@@ -20,6 +20,11 @@ extern void J3DCalcBBoardMtx(Mtx);
u32 J3DShapeMtx::sCurrentPipeline;
/* 802DD048-802DD054 .text getType__11J3DShapeMtxCFv */
u32 J3DShapeMtx::getType() const {
return 'SMTX';
}
/* 802DB9D8-802DBA1C .text loadMtxIndx_PNGP__11J3DShapeMtxCFiUs */
void J3DShapeMtx::loadMtxIndx_PNGP(int mtxNo, u16 index) const {
J3DFifoLoadIndx(GX_CMD_LOAD_INDX_A, index, 0xB000 | ((u16)(mtxNo * 0x0C)));
@@ -282,6 +287,16 @@ void J3DShapeMtxBBoardConcatView::load() const {
}
}
/* 802DCF88-802DCF94 .text getType__21J3DShapeMtxConcatViewCFv */
u32 J3DShapeMtxConcatView::getType() const {
return 'SMCV';
}
/* 802DCF94-802DCF98 .text loadNrmMtx__21J3DShapeMtxConcatViewCFiUs */
void J3DShapeMtxConcatView::loadNrmMtx(int mtxNo, u16 index) const {
/* Nonmatching */
}
/* 802DC8C0-802DC9B8 .text load__21J3DShapeMtxYBBoardImmCFv */
void J3DShapeMtxYBBoardImm::load() const {
/* Nonmatching */
@@ -292,26 +307,6 @@ void J3DShapeMtxYBBoardConcatView::load() const {
/* Nonmatching */
}
/* 802DCAEC-802DCB04 .text __ct__12J3DShapeDrawFPCUcUl */
J3DShapeDraw::J3DShapeDraw(const unsigned char*, unsigned long) {
/* Nonmatching */
}
/* 802DCB04-802DCB30 .text draw__12J3DShapeDrawCFv */
void J3DShapeDraw::draw() const {
/* Nonmatching */
}
/* 802DCB30-802DCB78 .text __dt__12J3DShapeDrawFv */
J3DShapeDraw::~J3DShapeDraw() {
/* Nonmatching */
}
/* 802DCB78-802DCBF4 .text __dt__28J3DShapeMtxYBBoardConcatViewFv */
J3DShapeMtxYBBoardConcatView::~J3DShapeMtxYBBoardConcatView() {
/* Nonmatching */
}
/* 802DCBF4-802DCC00 .text getType__21J3DShapeMtxYBBoardImmCFv */
u32 J3DShapeMtxYBBoardImm::getType() const {
return 'SMYB';
@@ -322,31 +317,11 @@ u32 J3DShapeMtx::getUseMtxIndex(u16 i) const {
return mUseMtxIndex;
}
/* 802DCC08-802DCC74 .text __dt__21J3DShapeMtxYBBoardImmFv */
J3DShapeMtxYBBoardImm::~J3DShapeMtxYBBoardImm() {
/* Nonmatching */
}
/* 802DCC74-802DCCF0 .text __dt__27J3DShapeMtxBBoardConcatViewFv */
J3DShapeMtxBBoardConcatView::~J3DShapeMtxBBoardConcatView() {
/* Nonmatching */
}
/* 802DCCF0-802DCCFC .text getType__20J3DShapeMtxBBoardImmCFv */
u32 J3DShapeMtxBBoardImm::getType() const {
return 'SMBB';
}
/* 802DCCFC-802DCD68 .text __dt__20J3DShapeMtxBBoardImmFv */
J3DShapeMtxBBoardImm::~J3DShapeMtxBBoardImm() {
/* Nonmatching */
}
/* 802DCD68-802DCDE4 .text __dt__26J3DShapeMtxMultiConcatViewFv */
J3DShapeMtxMultiConcatView::~J3DShapeMtxMultiConcatView() {
/* Nonmatching */
}
/* 802DCDE4-802DCDF0 .text getType__26J3DShapeMtxMultiConcatViewCFv */
u32 J3DShapeMtxMultiConcatView::getType() const {
return 'SMMI';
@@ -367,11 +342,6 @@ void J3DShapeMtxMultiConcatView::loadNrmMtx(int mtxNo, u16 index) const {
/* Nonmatching */
}
/* 802DCE0C-802DCE78 .text __dt__19J3DShapeMtxMultiImmFv */
J3DShapeMtxMultiImm::~J3DShapeMtxMultiImm() {
/* Nonmatching */
}
/* 802DCE78-802DCE84 .text getType__19J3DShapeMtxMultiImmCFv */
u32 J3DShapeMtxMultiImm::getType() const {
return 'SMMI';
@@ -387,11 +357,6 @@ u32 J3DShapeMtxMultiImm::getUseMtxIndex(u16 i) const {
return mUseMtxIndexTable[i];
}
/* 802DCE9C-802DCEF8 .text __dt__16J3DShapeMtxMultiFv */
J3DShapeMtxMulti::~J3DShapeMtxMulti() {
/* Nonmatching */
}
/* 802DCEF8-802DCF04 .text getType__16J3DShapeMtxMultiCFv */
u32 J3DShapeMtxMulti::getType() const {
return 'SMML';
@@ -407,37 +372,18 @@ u32 J3DShapeMtxMulti::getUseMtxIndex(u16 i) const {
return mUseMtxIndexTable[i];
}
/* 802DCF1C-802DCF88 .text __dt__21J3DShapeMtxConcatViewFv */
J3DShapeMtxConcatView::~J3DShapeMtxConcatView() {
/* Nonmatching */
}
/* 802DCF88-802DCF94 .text getType__21J3DShapeMtxConcatViewCFv */
u32 J3DShapeMtxConcatView::getType() const {
return 'SMCV';
}
/* 802DCF94-802DCF98 .text loadNrmMtx__21J3DShapeMtxConcatViewCFiUs */
void J3DShapeMtxConcatView::loadNrmMtx(int mtxNo, u16 index) const {
/* Nonmatching */
}
/* 802DCF98-802DCFF4 .text __dt__14J3DShapeMtxImmFv */
J3DShapeMtxImm::~J3DShapeMtxImm() {
/* Nonmatching */
}
/* 802DCFF4-802DD000 .text getType__14J3DShapeMtxImmCFv */
u32 J3DShapeMtxImm::getType() const {
return 'SMIM';
}
/* 802DD000-802DD048 .text __dt__11J3DShapeMtxFv */
J3DShapeMtx::~J3DShapeMtx() {
/* Nonmatching */
/* 802DCAEC-802DCB04 .text __ct__12J3DShapeDrawFPCUcUl */
J3DShapeDraw::J3DShapeDraw(const u8* pDL, u32 size) {
mDisplayList = (void*) pDL;
mDisplayListSize = size;
}
/* 802DD048-802DD054 .text getType__11J3DShapeMtxCFv */
u32 J3DShapeMtx::getType() const {
return 'SMTX';
/* 802DCB04-802DCB30 .text draw__12J3DShapeDrawCFv */
void J3DShapeDraw::draw() const {
GXCallDisplayList(mDisplayList, mDisplayListSize);
}