Files
ss/include/m/m3d/m_scnleaf.h
T
2025-03-09 10:09:08 +01:00

67 lines
1.5 KiB
C++

#ifndef M3D_M_SCNLEAF_H
#define M3D_M_SCNLEAF_H
#include "egg/core/eggDisposer.h"
#include "m/m_allocator.h"
#include "nw4r/g3d/g3d_scnobj.h"
namespace m3d {
// NON-OFFICIAL
enum ScnLeafType_e {
SCN_LEAF_MODEL = 0,
SCN_LEAF_PROC = 2,
};
class UnkClass {
public:
UnkClass() {}
};
class scnLeaf_c : UnkClass, EGG::Disposer {
public:
scnLeaf_c();
virtual ~scnLeaf_c();
virtual int getType() const = 0;
virtual void remove();
virtual int entry();
void setOption(u32 flag, u32 set);
void setScale(f32, f32, f32);
void setScale(const nw4r::math::VEC3 &);
void getScale(nw4r::math::VEC3 *) const;
void setLocalMtx(const nw4r::math::MTX34 *);
void getLocalMtx(nw4r::math::MTX34 *) const;
const nw4r::math::MTX34 *getLocalMtx() const;
void getWorldMtx(nw4r::math::MTX34 *) const;
void getViewMtx(nw4r::math::MTX34 *) const;
void setCallback(nw4r::g3d::IScnObjCallback *cb);
nw4r::g3d::IScnObjCallback *swapCallback(nw4r::g3d::IScnObjCallback *cb);
void enableCallbackTiming(nw4r::g3d::ScnObj::Timing);
void enableCallbackOp(nw4r::g3d::ScnObj::ExecOp);
void calc(bool);
void calcVtx(bool);
void calcView(void *, bool);
void setPriorityDraw(int, int);
inline nw4r::g3d::ScnLeaf *getG3dObject() {
return mpScnLeaf;
}
inline const nw4r::g3d::ScnLeaf *getG3dObject() const {
return mpScnLeaf;
}
protected:
/* 0x14 */ nw4r::g3d::ScnLeaf *mpScnLeaf;
};
} // namespace m3d
#endif