New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
Model.h
Go to the documentation of this file.
1#pragma once
2
3#include <graphics/Animation.h>
4#include <graphics/Material.h>
5#include <graphics/RenderObj.h>
6#include <graphics/RenderObjLayer.h>
7
8#include <geom/seadSphere.h>
9#include <heap/seadDisposer.h>
10#include <shadow/aglDepthShadow.h>
11
12class ModelResource;
13
14class Model : public RenderObj, public sead::IDisposer // vtbl Address: 0x100BC908
15{
16 // getRuntimeTypeInfoStatic()::typeInfo initialization guard variable Address: 0x101E9D08
17 // getRuntimeTypeInfoStatic()::typeInfo Address: 0x101E9F9C
18 SEAD_RTTI_OVERRIDE(Model, RenderObj)
19
20public:
27
28public:
29 // Address: 0x024EE298
31 // Address: 0x024EE230
33
34 virtual void calcAnm() = 0;
35 virtual void calcMdl() = 0;
36 virtual void setMtxRT(const sead::Matrix34f& rt) = 0;
37 virtual const sead::Matrix34f& getMtxRT() const = 0;
38 virtual void setScale(const sead::Vector3f& scale) = 0;
39 virtual const sead::Vector3f& getScale() const = 0;
40 virtual bool hasOpa() const = 0;
41 virtual bool hasXlu() const = 0;
42 virtual s32 searchBoneIndex(const sead::SafeString& name) const = 0;
43 virtual const char* getBoneName(s32 index) const = 0;
44 virtual u32 getBoneNum() const = 0;
45 virtual void setBoneLocalMatrix(s32 index, const sead::Matrix34f& rt, const sead::Vector3f& scale) = 0;
46 virtual void getBoneLocalMatrix(s32 index, sead::Matrix34f* rt, sead::Vector3f* scale) const = 0;
47 virtual void setBoneWorldMatrix(s32 index, const sead::Matrix34f& mtx) = 0;
48 virtual void getBoneWorldMatrix(s32 index, sead::Matrix34f* mtx) const = 0;
49 virtual void setBoneVisible(s32 index, bool visible) = 0;
50 virtual bool isBoneVisible(s32 index) const = 0;
51 virtual u32 getMaterialNum() const = 0;
52 virtual s32 searchMaterialIndex(const sead::SafeString& name) const = 0;
53 virtual const char* getMaterialName(s32 index) const = 0;
54 virtual Material* getMaterial(s32 index) const = 0;
55 virtual void setMaterialVisible(s32 index, bool visible) = 0;
56 virtual bool isMaterialVisible(s32 index) const = 0;
57 virtual void setBoundingEnable(bool enable) = 0;
58 virtual bool isBoundingEnable() const = 0;
59 virtual const sead::Sphere3f& getBounding() const = 0;
60 virtual void calcViewShapeShadowFlags(agl::sdw::DepthShadow* depth_shadow, RenderObjLayerBase* shadow_layer, RenderObjRenderMgr* render_mgr) = 0;
61 virtual sead::SafeString getName() const = 0;
62 virtual void setSklAnimBlendWeight(s32 index, f32 weight) = 0;
63 virtual f32 getSklAnimBlendWeight(s32 index) const = 0;
64 virtual void setSklAnim(s32 index, Animation* anim) = 0;
65 virtual void setTexAnim(s32 index, Animation* anim) = 0;
66 virtual void setShuAnim(s32 index, Animation* anim) = 0;
67 virtual void setVisAnim(s32 index, Animation* anim) = 0;
68 virtual void setShaAnim(s32 index, Animation* anim) = 0;
69 virtual Animation* const* getSklAnims() const = 0;
70 virtual Animation* const* getTexAnims() const = 0;
71 virtual Animation* const* getShuAnims() const = 0;
72 virtual Animation* const* getVisAnims() const = 0;
73 virtual Animation* const* getShaAnims() const = 0;
74
75 s32 getOpaBufferIdx() const { return mOpaBufferIdx; }
76 s32 getXluBufferIdx() const { return mXluBufferIdx; }
77
78 void setOpaBufferIdx(s32 index) { mOpaBufferIdx = index; }
79 void setXluBufferIdx(s32 index) { mXluBufferIdx = index; }
80
81protected:
84};
85static_assert(sizeof(Model) == 0x28);
86
88{
89public:
90 // Address: 0x024EE440
91 static Model* createG3d(const ModelResource& res, const sead::SafeString& name, s32 num_skl_anim, s32 num_tex_anim, s32 num_shu_anim, s32 num_vis_anim, s32 num_sha_anim, Model::BoundingMode bounding_mode, sead::Heap* heap);
92 // Address: 0x024EE320
93 static Model* createG3d(const ModelResource& res, const sead::SafeString& name, s32 num_view, s32 num_skl_anim, s32 num_tex_anim, s32 num_shu_anim, s32 num_vis_anim, s32 num_sha_anim, Model::BoundingMode bounding_mode, sead::Heap* heap);
94
95 // Address: 0x024EE49C
96 static void getBoneLocalMatrix(const Model& model, s32 index, sead::Matrix34f* mtx); // SRT
97};
Definition ModelResource.h:13
Definition Model.h:88
static Model * createG3d(const ModelResource &res, const sead::SafeString &name, s32 num_skl_anim, s32 num_tex_anim, s32 num_shu_anim, s32 num_vis_anim, s32 num_sha_anim, Model::BoundingMode bounding_mode, sead::Heap *heap)
static Model * createG3d(const ModelResource &res, const sead::SafeString &name, s32 num_view, s32 num_skl_anim, s32 num_tex_anim, s32 num_shu_anim, s32 num_vis_anim, s32 num_sha_anim, Model::BoundingMode bounding_mode, sead::Heap *heap)
static void getBoneLocalMatrix(const Model &model, s32 index, sead::Matrix34f *mtx)
Definition Model.h:15
virtual void setBoundingEnable(bool enable)=0
virtual u32 getBoneNum() const =0
virtual void setSklAnimBlendWeight(s32 index, f32 weight)=0
virtual void setMtxRT(const sead::Matrix34f &rt)=0
virtual void setShuAnim(s32 index, Animation *anim)=0
virtual bool hasOpa() const =0
virtual void calcMdl()=0
virtual Animation *const * getShaAnims() const =0
virtual void calcViewShapeShadowFlags(agl::sdw::DepthShadow *depth_shadow, RenderObjLayerBase *shadow_layer, RenderObjRenderMgr *render_mgr)=0
s32 mXluBufferIdx
Definition Model.h:83
virtual f32 getSklAnimBlendWeight(s32 index) const =0
virtual const sead::Vector3f & getScale() const =0
virtual const char * getBoneName(s32 index) const =0
virtual void setSklAnim(s32 index, Animation *anim)=0
virtual void setVisAnim(s32 index, Animation *anim)=0
virtual sead::SafeString getName() const =0
virtual void setBoneVisible(s32 index, bool visible)=0
virtual bool isBoneVisible(s32 index) const =0
virtual Animation *const * getVisAnims() const =0
s32 getOpaBufferIdx() const
Definition Model.h:75
virtual bool hasXlu() const =0
virtual bool isMaterialVisible(s32 index) const =0
virtual Material * getMaterial(s32 index) const =0
virtual s32 searchMaterialIndex(const sead::SafeString &name) const =0
virtual bool isBoundingEnable() const =0
virtual void setShaAnim(s32 index, Animation *anim)=0
virtual Animation *const * getShuAnims() const =0
virtual const char * getMaterialName(s32 index) const =0
virtual void setBoneLocalMatrix(s32 index, const sead::Matrix34f &rt, const sead::Vector3f &scale)=0
virtual void calcAnm()=0
~Model() override
virtual void getBoneWorldMatrix(s32 index, sead::Matrix34f *mtx) const =0
virtual s32 searchBoneIndex(const sead::SafeString &name) const =0
virtual const sead::Sphere3f & getBounding() const =0
virtual void setScale(const sead::Vector3f &scale)=0
void setOpaBufferIdx(s32 index)
Definition Model.h:78
void setXluBufferIdx(s32 index)
Definition Model.h:79
virtual Animation *const * getTexAnims() const =0
virtual Animation *const * getSklAnims() const =0
virtual u32 getMaterialNum() const =0
virtual void setBoneWorldMatrix(s32 index, const sead::Matrix34f &mtx)=0
virtual void setTexAnim(s32 index, Animation *anim)=0
s32 getXluBufferIdx() const
Definition Model.h:76
virtual void getBoneLocalMatrix(s32 index, sead::Matrix34f *rt, sead::Vector3f *scale) const =0
s32 mOpaBufferIdx
Definition Model.h:82
virtual void setMaterialVisible(s32 index, bool visible)=0
virtual const sead::Matrix34f & getMtxRT() const =0