tp/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h

53 lines
1.6 KiB
C++

#ifndef J3DMTXBUFFER_H
#define J3DMTXBUFFER_H
#include "JSystem/J3DGraphAnimator/J3DJointTree.h"
#include "JSystem/J3DGraphAnimator/J3DModelData.h"
#include "dolphin/mtx/mtxvec.h"
#include "dolphin/types.h"
class J3DModelData;
class J3DMtxBuffer {
public:
J3DMtxBuffer() { initialize(); }
/* 80326214 */ void initialize();
/* 80326258 */ s32 create(J3DModelData*, u32);
/* 80326364 */ void createAnmMtx(J3DModelData*);
/* 803263F0 */ void createWeightEnvelopeMtx(J3DModelData*);
/* 8032648C */ void setNoUseDrawMtx();
/* 803264B8 */ void createDoubleDrawMtx(J3DModelData*, u32);
/* 80326664 */ void createBumpMtxArray(J3DModelData*, u32);
/* 803268D4 */ void calcWeightEnvelopeMtx();
/* 80326ACC */ void calcDrawMtx(u32, Vec const&, f32 const (&)[3][4]);
/* 80326D3C */ void calcNrmMtx();
/* 80326EF0 */ void calcBBoardMtx();
MtxP getAnmMtx(int idx) const { return *(mMatrices[0] + idx); }
void setScaleFlag(int idx, u8 flag) { mScaleFlag[idx] = flag; }
static Mtx sNoUseDrawMtx;
static Mtx33 sNoUseNrmMtx;
static Mtx* sNoUseDrawMtxPtr;
static Mtx33* sNoUseNrmMtxPtr;
private:
/* 0x00 */ J3DJointTree* mJointTree;
/* 0x04 */ u8* mScaleFlag;
/* 0x08 */ u8* mEnvScaleFlag;
/* 0x0C */ Mtx* mMatrices[5]; // fix this later
/* 0x20 */ Mtx33* mpNrmMtxPtrPtr;
/* 0x24 */ Mtx** field_0x24;
/* 0x28 */ Mtx** mpBumpMtxPtr;
/* 0x2C */ u32 field_0x2c;
/* 0x30 */ u32* mCurrentViewNoPtr;
/* 0x34 */ Mtx** mUserAnmMtx;
public:
/* 803283B4 */ virtual ~J3DMtxBuffer();
};
#endif /* J3DMTXBUFFER_H */