New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
ModelG3d Class Reference

#include <ModelG3d.h>

Inherits Model.

Classes

class  BoundingFlagArray
struct  DrawInfo
struct  LightMap
struct  ShaderAssign
struct  Shape
struct  ShapeRenderInfo

Public Types

enum  SamplerSlot { cSamplerSlot_LightMap_0 = 12 , cSamplerSlot_ReflectionMap = cSamplerSlot_LightMap_0 + LightMapMgr::cLightMapNum , cSamplerSlot_ShadowMap }
Public Types inherited from Model
enum  BoundingMode { cBoundingMode_Disable , cBoundingMode_Enable , cBoundingMode_EnableSubBounding }

Public Member Functions

void calc () override
void calcGPU (s32 view_index, const sead::Matrix34f &view_mtx, const sead::Matrix44f &proj_mtx, RenderObjRenderMgr *render_mgr) override
void updateView (s32 view_index, const sead::Matrix34f &view_mtx, const sead::Matrix44f &proj_mtx, RenderObjRenderMgr *render_mgr) override
void drawOpa (s32 view_index, const sead::Matrix34f &view_mtx, const sead::Matrix44f &proj_mtx, RenderObjRenderMgr *render_mgr) override
void drawXlu (s32 view_index, const sead::Matrix34f &view_mtx, const sead::Matrix44f &proj_mtx, RenderObjRenderMgr *render_mgr) override
void drawShadowOpa (s32 view_index, const sead::Matrix34f &view_mtx, const sead::Matrix44f &proj_mtx, RenderObjRenderMgr *render_mgr) override
void drawReflectionOpa (s32 view_index, const sead::Matrix34f &view_mtx, const sead::Matrix44f &proj_mtx, RenderObjRenderMgr *render_mgr) override
void drawReflectionXlu (s32 view_index, const sead::Matrix34f &view_mtx, const sead::Matrix44f &proj_mtx, RenderObjRenderMgr *render_mgr) override
bool hasShadow () const override
 ModelG3d ()
virtual ~ModelG3d ()
void calcAnm () override
void calcMdl () override
void setMtxRT (const sead::Matrix34f &rt) override
const sead::Matrix34fgetMtxRT () const override
void setScale (const sead::Vector3f &scale) override
const sead::Vector3fgetScale () const override
bool hasOpa () const override
bool hasXlu () const override
s32 searchBoneIndex (const sead::SafeString &name) const override
const char * getBoneName (s32 index) const override
u32 getBoneNum () const override
void setBoneLocalMatrix (s32 index, const sead::Matrix34f &rt, const sead::Vector3f &scale) override
void getBoneLocalMatrix (s32 index, sead::Matrix34f *rt=nullptr, sead::Vector3f *scale=nullptr) const override
void setBoneWorldMatrix (s32 index, const sead::Matrix34f &mtx) override
void getBoneWorldMatrix (s32 index, sead::Matrix34f *mtx) const override
void setBoneVisible (s32 index, bool visible) override
bool isBoneVisible (s32 index) const override
u32 getMaterialNum () const override
s32 searchMaterialIndex (const sead::SafeString &name) const override
const char * getMaterialName (s32 index) const override
MaterialgetMaterial (s32 index) const override
void setMaterialVisible (s32 index, bool visible) override
bool isMaterialVisible (s32 index) const override
void setBoundingEnable (bool enable) override
bool isBoundingEnable () const override
const sead::Sphere3fgetBounding () const override
void calcViewShapeShadowFlags (agl::sdw::DepthShadow *depth_shadow, RenderObjLayerBase *shadow_layer, RenderObjRenderMgr *render_mgr) override
sead::SafeString getName () const override
void setSklAnimBlendWeight (s32 index, f32 weight) override
f32 getSklAnimBlendWeight (s32 index) const override
void setSklAnim (s32 index, Animation *anim) override
void setTexAnim (s32 index, Animation *anim) override
void setShuAnim (s32 index, Animation *anim) override
void setVisAnim (s32 index, Animation *anim) override
void setShaAnim (s32 index, Animation *anim) override
SkeletalAnimation ** getSklAnimBuffer ()
TexturePatternAnimation ** getTexAnimBuffer ()
ShaderParamAnimation ** getShuAnimBuffer ()
VisibilityAnimation ** getVisAnimBuffer ()
ShapeAnimation ** getShaAnimBuffer ()
void initialize (nw::g3d::res::ResModel *res_model, const agl::ShaderProgramArchive *shader_archive, s32 num_view, s32 num_skl_anim, s32 num_tex_anim, s32 num_shu_anim, s32 num_vis_anim, s32 num_sha_anim, BoundingMode bounding_mode, sead::Heap *heap)
agl::g3d::ModelExgetModelEx ()
const agl::g3d::ModelExgetModelEx () const
ShapegetShape (s32 index)
const ShapegetShape (s32 index) const
sead::BitFlag32getRenderFlag ()
const sead::BitFlag32getRenderFlag () const
void activateMaterial (const agl::g3d::ModelShaderAssign &shader_assign, const nw::g3d::MaterialObj *material, const LightMap &light_map) const
void setDisplayListDirty ()
Public Member Functions inherited from Model
 Model ()
 ~Model () override
s32 getOpaBufferIdx () const
s32 getXluBufferIdx () const
void setOpaBufferIdx (s32 index)
void setXluBufferIdx (s32 index)
Public Member Functions inherited from RenderObj
 RenderObj ()
sead::Vector3fgetOrderPos ()
const sead::Vector3fgetOrderPos () const
Public Member Functions inherited from RenderObjBase
 RenderObjBase ()
Public Member Functions inherited from sead::IDisposer
 IDisposer ()
virtual ~IDisposer ()

Private Member Functions

Animation *const * getSklAnims () const override
Animation *const * getTexAnims () const override
Animation *const * getShuAnims () const override
Animation *const * getVisAnims () const override
Animation *const * getShaAnims () const override
void createViewShapeShadowFlagBuffer_ (s32 num_view, sead::Heap *heap)
void initializeShapeRenderInfo_ (ShapeRenderInfo &render_info, const nw::g3d::MaterialObj *material, const nw::g3d::ShapeObj *shape)
void calcBounding_ ()
void applyBlendWeight_ (s32 shape_index)
void drawOpa_ (DrawInfo &draw_info, const RenderObjRenderMgr *render_mgr) const
void drawXlu_ (DrawInfo &draw_info, const RenderObjRenderMgr *render_mgr) const
void drawShape_ (DrawInfo &draw_info, const ShapeRenderInfo &render_info, const RenderObjRenderMgr *render_mgr) const

Static Private Member Functions

static s32 sortShapeRenderInfoCmp (const ShapeRenderInfo *a, const ShapeRenderInfo *b)
static void setBoundingFlagArray_ (BoundingFlagArray &flag_array, const SkeletalAnimation &anim)

Private Attributes

agl::g3d::ModelEx mModelEx
nw::g3d::SkeletalAnimBlender mSklAnimBlender
sead::Buffer< SkeletalAnimation * > mSklAnim
sead::Buffer< TexturePatternAnimation * > mTexAnim
sead::Buffer< ShaderParamAnimation * > mShuAnim
sead::Buffer< VisibilityAnimation * > mVisAnim
sead::Buffer< ShapeAnimation * > mShaAnim
void * mBuffer
void * mBlockBuffer
size_t mBlockBufferSize
void * mSklAnimBlenderBuffer
sead::Buffer< f32 > mSklAnimBlendWeight
sead::PtrArray< ShapeRenderInfomOpaShapeInfo
sead::PtrArray< ShapeRenderInfomXluShapeInfo
sead::Buffer< ShaderAssignmShaderAssign
sead::Buffer< MaterialG3d * > mMaterial
sead::Buffer< ShapemShape
sead::Matrix34f mMtxRT
sead::Vector3f mScale
u8 _128
sead::BitFlag32 mRenderFlag
sead::BitFlag32 mBoundingEnableFlag
sead::Buffer< sead::Buffer< sead::BitFlag32 > > mViewShapeShadowFlagBuffer
sead::Sphere3f mBounding
sead::BoundBox3fmSubBounding
sead::BitFlag32 mShapeFlag
BoundingFlagArray mBoundingFlagArray
BoundingFlagArray mSubBoundingFlagArray
sead::BitFlag32 mViewDepthShadowEnableFlag
bool mDisplayListDirty

Additional Inherited Members

Protected Attributes inherited from Model
s32 mOpaBufferIdx
s32 mXluBufferIdx
Protected Attributes inherited from RenderObj
sead::Vector3f mOrderPos

Member Enumeration Documentation

◆ SamplerSlot

Enumerator
cSamplerSlot_LightMap_0 
cSamplerSlot_ReflectionMap 
cSamplerSlot_ShadowMap 

Constructor & Destructor Documentation

◆ ModelG3d()

ModelG3d::ModelG3d ( )

◆ ~ModelG3d()

virtual ModelG3d::~ModelG3d ( )
virtual

Member Function Documentation

◆ calc()

void ModelG3d::calc ( )
overridevirtual

Implements RenderObjBase.

◆ calcGPU()

void ModelG3d::calcGPU ( s32 view_index,
const sead::Matrix34f & view_mtx,
const sead::Matrix44f & proj_mtx,
RenderObjRenderMgr * render_mgr )
overridevirtual

Implements RenderObj.

◆ updateView()

void ModelG3d::updateView ( s32 view_index,
const sead::Matrix34f & view_mtx,
const sead::Matrix44f & proj_mtx,
RenderObjRenderMgr * render_mgr )
inlineoverridevirtual

Implements RenderObj.

◆ drawOpa()

void ModelG3d::drawOpa ( s32 view_index,
const sead::Matrix34f & view_mtx,
const sead::Matrix44f & proj_mtx,
RenderObjRenderMgr * render_mgr )
overridevirtual

Implements RenderObj.

◆ drawXlu()

void ModelG3d::drawXlu ( s32 view_index,
const sead::Matrix34f & view_mtx,
const sead::Matrix44f & proj_mtx,
RenderObjRenderMgr * render_mgr )
overridevirtual

Implements RenderObj.

◆ drawShadowOpa()

void ModelG3d::drawShadowOpa ( s32 view_index,
const sead::Matrix34f & view_mtx,
const sead::Matrix44f & proj_mtx,
RenderObjRenderMgr * render_mgr )
overridevirtual

Reimplemented from RenderObj.

◆ drawReflectionOpa()

void ModelG3d::drawReflectionOpa ( s32 view_index,
const sead::Matrix34f & view_mtx,
const sead::Matrix44f & proj_mtx,
RenderObjRenderMgr * render_mgr )
overridevirtual

Reimplemented from RenderObj.

◆ drawReflectionXlu()

void ModelG3d::drawReflectionXlu ( s32 view_index,
const sead::Matrix34f & view_mtx,
const sead::Matrix44f & proj_mtx,
RenderObjRenderMgr * render_mgr )
overridevirtual

Reimplemented from RenderObj.

◆ hasShadow()

bool ModelG3d::hasShadow ( ) const
inlineoverridevirtual

Reimplemented from RenderObj.

◆ calcAnm()

void ModelG3d::calcAnm ( )
overridevirtual

Implements Model.

◆ calcMdl()

void ModelG3d::calcMdl ( )
overridevirtual

Implements Model.

◆ setMtxRT()

void ModelG3d::setMtxRT ( const sead::Matrix34f & rt)
inlineoverridevirtual

Implements Model.

◆ getMtxRT()

const sead::Matrix34f & ModelG3d::getMtxRT ( ) const
inlineoverridevirtual

Implements Model.

◆ setScale()

void ModelG3d::setScale ( const sead::Vector3f & scale)
inlineoverridevirtual

Implements Model.

◆ getScale()

const sead::Vector3f & ModelG3d::getScale ( ) const
inlineoverridevirtual

Implements Model.

◆ hasOpa()

bool ModelG3d::hasOpa ( ) const
overridevirtual

Implements Model.

◆ hasXlu()

bool ModelG3d::hasXlu ( ) const
overridevirtual

Implements Model.

◆ searchBoneIndex()

s32 ModelG3d::searchBoneIndex ( const sead::SafeString & name) const
overridevirtual

Implements Model.

◆ getBoneName()

const char * ModelG3d::getBoneName ( s32 index) const
overridevirtual

Implements Model.

◆ getBoneNum()

u32 ModelG3d::getBoneNum ( ) const
overridevirtual

Implements Model.

◆ setBoneLocalMatrix()

void ModelG3d::setBoneLocalMatrix ( s32 index,
const sead::Matrix34f & rt,
const sead::Vector3f & scale )
overridevirtual

Implements Model.

◆ getBoneLocalMatrix()

void ModelG3d::getBoneLocalMatrix ( s32 index,
sead::Matrix34f * rt = nullptr,
sead::Vector3f * scale = nullptr ) const
overridevirtual

Implements Model.

◆ setBoneWorldMatrix()

void ModelG3d::setBoneWorldMatrix ( s32 index,
const sead::Matrix34f & mtx )
overridevirtual

Implements Model.

◆ getBoneWorldMatrix()

void ModelG3d::getBoneWorldMatrix ( s32 index,
sead::Matrix34f * mtx ) const
overridevirtual

Implements Model.

◆ setBoneVisible()

void ModelG3d::setBoneVisible ( s32 index,
bool visible )
overridevirtual

Implements Model.

◆ isBoneVisible()

bool ModelG3d::isBoneVisible ( s32 index) const
overridevirtual

Implements Model.

◆ getMaterialNum()

u32 ModelG3d::getMaterialNum ( ) const
overridevirtual

Implements Model.

◆ searchMaterialIndex()

s32 ModelG3d::searchMaterialIndex ( const sead::SafeString & name) const
overridevirtual

Implements Model.

◆ getMaterialName()

const char * ModelG3d::getMaterialName ( s32 index) const
overridevirtual

Implements Model.

◆ getMaterial()

Material * ModelG3d::getMaterial ( s32 index) const
inlineoverridevirtual

Implements Model.

◆ setMaterialVisible()

void ModelG3d::setMaterialVisible ( s32 index,
bool visible )
overridevirtual

Implements Model.

◆ isMaterialVisible()

bool ModelG3d::isMaterialVisible ( s32 index) const
overridevirtual

Implements Model.

◆ setBoundingEnable()

void ModelG3d::setBoundingEnable ( bool enable)
inlineoverridevirtual

Implements Model.

◆ isBoundingEnable()

bool ModelG3d::isBoundingEnable ( ) const
inlineoverridevirtual

Implements Model.

◆ getBounding()

const sead::Sphere3f & ModelG3d::getBounding ( ) const
inlineoverridevirtual

Implements Model.

◆ calcViewShapeShadowFlags()

void ModelG3d::calcViewShapeShadowFlags ( agl::sdw::DepthShadow * depth_shadow,
RenderObjLayerBase * shadow_layer,
RenderObjRenderMgr * render_mgr )
overridevirtual

Implements Model.

◆ getName()

sead::SafeString ModelG3d::getName ( ) const
inlineoverridevirtual

Implements Model.

◆ setSklAnimBlendWeight()

void ModelG3d::setSklAnimBlendWeight ( s32 index,
f32 weight )
inlineoverridevirtual

Implements Model.

◆ getSklAnimBlendWeight()

f32 ModelG3d::getSklAnimBlendWeight ( s32 index) const
inlineoverridevirtual

Implements Model.

◆ setSklAnim()

void ModelG3d::setSklAnim ( s32 index,
Animation * anim )
overridevirtual

Implements Model.

◆ setTexAnim()

void ModelG3d::setTexAnim ( s32 index,
Animation * anim )
overridevirtual

Implements Model.

◆ setShuAnim()

void ModelG3d::setShuAnim ( s32 index,
Animation * anim )
overridevirtual

Implements Model.

◆ setVisAnim()

void ModelG3d::setVisAnim ( s32 index,
Animation * anim )
overridevirtual

Implements Model.

◆ setShaAnim()

void ModelG3d::setShaAnim ( s32 index,
Animation * anim )
overridevirtual

Implements Model.

◆ getSklAnims()

Animation *const * ModelG3d::getSklAnims ( ) const
inlineoverrideprivatevirtual

Implements Model.

◆ getTexAnims()

Animation *const * ModelG3d::getTexAnims ( ) const
inlineoverrideprivatevirtual

Implements Model.

◆ getShuAnims()

Animation *const * ModelG3d::getShuAnims ( ) const
inlineoverrideprivatevirtual

Implements Model.

◆ getVisAnims()

Animation *const * ModelG3d::getVisAnims ( ) const
inlineoverrideprivatevirtual

Implements Model.

◆ getShaAnims()

Animation *const * ModelG3d::getShaAnims ( ) const
inlineoverrideprivatevirtual

Implements Model.

◆ getSklAnimBuffer()

SkeletalAnimation ** ModelG3d::getSklAnimBuffer ( )
inline

◆ getTexAnimBuffer()

TexturePatternAnimation ** ModelG3d::getTexAnimBuffer ( )
inline

◆ getShuAnimBuffer()

ShaderParamAnimation ** ModelG3d::getShuAnimBuffer ( )
inline

◆ getVisAnimBuffer()

VisibilityAnimation ** ModelG3d::getVisAnimBuffer ( )
inline

◆ getShaAnimBuffer()

ShapeAnimation ** ModelG3d::getShaAnimBuffer ( )
inline

◆ initialize()

void ModelG3d::initialize ( nw::g3d::res::ResModel * res_model,
const agl::ShaderProgramArchive * shader_archive,
s32 num_view,
s32 num_skl_anim,
s32 num_tex_anim,
s32 num_shu_anim,
s32 num_vis_anim,
s32 num_sha_anim,
BoundingMode bounding_mode,
sead::Heap * heap )

◆ getModelEx() [1/2]

agl::g3d::ModelEx & ModelG3d::getModelEx ( )
inline

◆ getModelEx() [2/2]

const agl::g3d::ModelEx & ModelG3d::getModelEx ( ) const
inline

◆ getShape() [1/2]

Shape & ModelG3d::getShape ( s32 index)
inline

◆ getShape() [2/2]

const Shape & ModelG3d::getShape ( s32 index) const
inline

◆ getRenderFlag() [1/2]

sead::BitFlag32 & ModelG3d::getRenderFlag ( )
inline

◆ getRenderFlag() [2/2]

const sead::BitFlag32 & ModelG3d::getRenderFlag ( ) const
inline

◆ activateMaterial()

void ModelG3d::activateMaterial ( const agl::g3d::ModelShaderAssign & shader_assign,
const nw::g3d::MaterialObj * material,
const LightMap & light_map ) const

◆ setDisplayListDirty()

void ModelG3d::setDisplayListDirty ( )

◆ createViewShapeShadowFlagBuffer_()

void ModelG3d::createViewShapeShadowFlagBuffer_ ( s32 num_view,
sead::Heap * heap )
private

◆ initializeShapeRenderInfo_()

void ModelG3d::initializeShapeRenderInfo_ ( ShapeRenderInfo & render_info,
const nw::g3d::MaterialObj * material,
const nw::g3d::ShapeObj * shape )
private

◆ sortShapeRenderInfoCmp()

s32 ModelG3d::sortShapeRenderInfoCmp ( const ShapeRenderInfo * a,
const ShapeRenderInfo * b )
staticprivate

◆ calcBounding_()

void ModelG3d::calcBounding_ ( )
private

◆ applyBlendWeight_()

void ModelG3d::applyBlendWeight_ ( s32 shape_index)
private

◆ setBoundingFlagArray_()

void ModelG3d::setBoundingFlagArray_ ( BoundingFlagArray & flag_array,
const SkeletalAnimation & anim )
staticprivate

◆ drawOpa_()

void ModelG3d::drawOpa_ ( DrawInfo & draw_info,
const RenderObjRenderMgr * render_mgr ) const
private

◆ drawXlu_()

void ModelG3d::drawXlu_ ( DrawInfo & draw_info,
const RenderObjRenderMgr * render_mgr ) const
private

◆ drawShape_()

void ModelG3d::drawShape_ ( DrawInfo & draw_info,
const ShapeRenderInfo & render_info,
const RenderObjRenderMgr * render_mgr ) const
private

Member Data Documentation

◆ mModelEx

agl::g3d::ModelEx ModelG3d::mModelEx
private

◆ mSklAnimBlender

nw::g3d::SkeletalAnimBlender ModelG3d::mSklAnimBlender
private

◆ mSklAnim

sead::Buffer<SkeletalAnimation*> ModelG3d::mSklAnim
private

◆ mTexAnim

sead::Buffer<TexturePatternAnimation*> ModelG3d::mTexAnim
private

◆ mShuAnim

sead::Buffer<ShaderParamAnimation*> ModelG3d::mShuAnim
private

◆ mVisAnim

sead::Buffer<VisibilityAnimation*> ModelG3d::mVisAnim
private

◆ mShaAnim

sead::Buffer<ShapeAnimation*> ModelG3d::mShaAnim
private

◆ mBuffer

void* ModelG3d::mBuffer
private

◆ mBlockBuffer

void* ModelG3d::mBlockBuffer
private

◆ mBlockBufferSize

size_t ModelG3d::mBlockBufferSize
private

◆ mSklAnimBlenderBuffer

void* ModelG3d::mSklAnimBlenderBuffer
private

◆ mSklAnimBlendWeight

sead::Buffer<f32> ModelG3d::mSklAnimBlendWeight
private

◆ mOpaShapeInfo

sead::PtrArray<ShapeRenderInfo> ModelG3d::mOpaShapeInfo
private

◆ mXluShapeInfo

sead::PtrArray<ShapeRenderInfo> ModelG3d::mXluShapeInfo
private

◆ mShaderAssign

sead::Buffer<ShaderAssign> ModelG3d::mShaderAssign
private

◆ mMaterial

sead::Buffer<MaterialG3d*> ModelG3d::mMaterial
private

◆ mShape

sead::Buffer<Shape> ModelG3d::mShape
private

◆ mMtxRT

sead::Matrix34f ModelG3d::mMtxRT
private

◆ mScale

sead::Vector3f ModelG3d::mScale
private

◆ _128

u8 ModelG3d::_128
private

◆ mRenderFlag

sead::BitFlag32 ModelG3d::mRenderFlag
private

◆ mBoundingEnableFlag

sead::BitFlag32 ModelG3d::mBoundingEnableFlag
private

◆ mViewShapeShadowFlagBuffer

sead::Buffer< sead::Buffer<sead::BitFlag32> > ModelG3d::mViewShapeShadowFlagBuffer
private

◆ mBounding

sead::Sphere3f ModelG3d::mBounding
private

◆ mSubBounding

sead::BoundBox3f* ModelG3d::mSubBounding
private

◆ mShapeFlag

sead::BitFlag32 ModelG3d::mShapeFlag
private

◆ mBoundingFlagArray

BoundingFlagArray ModelG3d::mBoundingFlagArray
private

◆ mSubBoundingFlagArray

BoundingFlagArray ModelG3d::mSubBoundingFlagArray
private

◆ mViewDepthShadowEnableFlag

sead::BitFlag32 ModelG3d::mViewDepthShadowEnableFlag
private

◆ mDisplayListDirty

bool ModelG3d::mDisplayListDirty
private