mirror of https://github.com/zeldaret/tp.git
88 lines
2.5 KiB
C++
88 lines
2.5 KiB
C++
#ifndef J3DJOINT_H
|
|
#define J3DJOINT_H
|
|
|
|
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
|
#include "JSystem/J3DGraphBase/J3DTransform.h"
|
|
#include "dolphin/types.h"
|
|
|
|
class J3DAnmTransform;
|
|
class J3DMtxBuffer;
|
|
|
|
class J3DMtxCalc {
|
|
public:
|
|
/* 80325D1C */ void setMtxBuffer(J3DMtxBuffer*);
|
|
|
|
/* 8000D948 */ virtual ~J3DMtxCalc();
|
|
/* 80014E90 */ virtual void setAnmTransform(J3DAnmTransform*);
|
|
/* 80014E9C */ virtual bool getAnmTransform();
|
|
/* 80014E8C */ virtual void setAnmTransform(u8, J3DAnmTransform*);
|
|
/* 80014E94 */ virtual bool getAnmTransform(u8);
|
|
/* 80014EA4 */ virtual void setWeight(u8, f32);
|
|
/* 80014EA8 */ virtual void getWeight(u8) const;
|
|
virtual void init(Vec const&, Mtx*) = 0;
|
|
virtual void calc() = 0;
|
|
|
|
static J3DMtxBuffer* getMtxBuffer() { return mMtxBuffer; }
|
|
static J3DJoint* getJoint() { return mJoint; }
|
|
|
|
static J3DMtxBuffer* mMtxBuffer;
|
|
static J3DJoint* mJoint;
|
|
}; // Size: 0x4
|
|
|
|
class J3DJoint;
|
|
typedef int (*J3DJointCallBack)(J3DJoint*, int);
|
|
|
|
class J3DJoint {
|
|
public:
|
|
/* 8032F13C */ void appendChild(J3DJoint*);
|
|
/* 8032F170 */ J3DJoint();
|
|
/* 8032F254 */ void entryIn();
|
|
/* 8032F3F8 */ void recursiveCalc();
|
|
|
|
J3DMaterial* getMesh() { return mMesh; }
|
|
u16 getJntNo() const { return mJntNo; }
|
|
u8 getScaleCompensate() const { return mScaleCompensate; }
|
|
J3DJoint* getYounger() { return mYounger; }
|
|
void setYounger(J3DJoint* pYounger) { mYounger = pYounger; }
|
|
|
|
static J3DMtxCalc* mCurrentMtxCalc;
|
|
|
|
private:
|
|
/* 0x00 */ void* field_0x0;
|
|
/* 0x04 */ J3DJointCallBack mCallBack;
|
|
/* 0x08 */ void* field_0x8;
|
|
/* 0x0C */ J3DJoint* mChild;
|
|
/* 0x10 */ J3DJoint* mYounger;
|
|
/* 0x14 */ u16 mJntNo;
|
|
/* 0x16 */ u8 mMtxType;
|
|
/* 0x17 */ u8 mScaleCompensate;
|
|
/* 0x18 */ J3DTransformInfo mTransformInfo;
|
|
/* 0x38 */ f32 field_0x38;
|
|
/* 0x3C */ Vec mMin;
|
|
/* 0x48 */ Vec mMax;
|
|
/* 0x54 */ J3DMtxCalc* mMtxCalc;
|
|
/* 0x58 */ J3DMaterial* mMesh;
|
|
}; // Size: 0x5C
|
|
|
|
struct J3DMtxCalcJ3DSysInitMaya {
|
|
/* 8032ECAC */ static void init(Vec const&, f32 const (&)[3][4]);
|
|
};
|
|
|
|
struct J3DMtxCalcJ3DSysInitBasic {
|
|
/* 8032EC28 */ static void init(Vec const&, f32 const (&)[3][4]);
|
|
};
|
|
|
|
struct J3DMtxCalcCalcTransformSoftimage {
|
|
/* 8032EE50 */ static void calcTransform(J3DTransformInfo const&);
|
|
};
|
|
|
|
struct J3DMtxCalcCalcTransformMaya {
|
|
/* 8032EFBC */ static void calcTransform(J3DTransformInfo const&);
|
|
};
|
|
|
|
struct J3DMtxCalcCalcTransformBasic {
|
|
/* 8032ED30 */ static void calcTransform(J3DTransformInfo const&);
|
|
};
|
|
|
|
#endif /* J3DJOINT_H */
|