NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
nw4r::g3d::ScnLeaf Class Referenceabstract
Inheritance diagram for nw4r::g3d::ScnLeaf:
[legend]

Description

Public Types

enum  ScaleProperty {
  NOT_SCALED ,
  UNIFORM_SCALED ,
  NONUNIFORM_SCALED
}
 
enum  ScnLeafOption {
  OPTID_NONE = (0x10000 | (0)) ,
  OPTID_DISABLE_DRAW_ALL = (0x10000 | (1))
}
 
- Public Types inherited from nw4r::g3d::ScnObj
enum  ForEachResult {
  FOREACHRESULT_OK ,
  FOREACHRESULT_CONTINUE ,
  FOREACHRESULT_RETURN ,
  FOREACHRESULT_GOBACK
}
 
enum  ScnObjMtxType {
  MTX_LOCAL ,
  MTX_WORLD ,
  MTX_VIEW ,
  MTX_TYPE_MAX
}
 
enum  ScnObjBoundingVolumeType {
  BOUNDINGVOLUME_AABB_LOCAL ,
  BOUNDINGVOLUME_AABB_WORLD ,
  BOUNDINGVOLUME_MAX
}
 
enum  ScnObjOption {
  OPTID_NONE = (0x00000 | (0)) ,
  OPTID_DISABLE_GATHER_SCNOBJ = (0x00000 | (1)) ,
  OPTID_DISABLE_CALC_WORLD = (0x00000 | (2)) ,
  OPTID_DISABLE_CALC_MAT = (0x00000 | (3)) ,
  OPTID_DISABLE_CALC_VTX = (0x00000 | (4)) ,
  OPTID_DISABLE_CALC_VIEW = (0x00000 | (5)) ,
  OPTID_DISABLE_DRAW_OPA = (0x00000 | (6)) ,
  OPTID_DISABLE_DRAW_XLU = (0x00000 | (7)) ,
  OPTID_DISABLE_UPDATEFRAME = (0x00000 | (8)) ,
  OPTID_ENABLE_CULLING = (0x00000 | (9))
}
 
enum  Timing {
  CALLBACK_TIMING_A = (1 << 0) ,
  CALLBACK_TIMING_B = (1 << 1) ,
  CALLBACK_TIMING_C = (1 << 2) ,
  CALLBACK_TIMING_ALL = (CALLBACK_TIMING_A | CALLBACK_TIMING_B | CALLBACK_TIMING_C)
}
 
enum  ExecOp {
  EXECOP_CALC_WORLD = (1 << 0) ,
  EXECOP_CALC_MAT = (1 << 1) ,
  EXECOP_CALC_VIEW = (1 << 2) ,
  EXECOP_DRAW_OPA = (1 << 4) ,
  EXECOP_DRAW_XLU = (1 << 5)
}
 
typedef ForEachResult(* ForEachFunc) (ScnObj *pParent, void *pInfo)
 
- Public Types inherited from nw4r::g3d::G3dObj
enum  G3dProcTask {
  G3DPROC_NONE = 0x00000 ,
  G3DPROC_CALC_WORLD = 0x00001 ,
  G3DPROC_CALC_MAT = 0x00002 ,
  G3DPROC_CALC_VTX = 0x00003 ,
  G3DPROC_CALC_VIEW = 0x00004 ,
  G3DPROC_GATHER_SCNOBJ = 0x00005 ,
  G3DPROC_DRAW_OPA = 0x00006 ,
  G3DPROC_DRAW_XLU = 0x00007 ,
  G3DPROC_UPDATEFRAME = 0x00008 ,
  __G3DPROC_OPTIONAL_END ,
  G3DPROC_CHILD_DETACHED = 0x10001 ,
  G3DPROC_ATTACH_PARENT = 0x10002 ,
  G3DPROC_DETACH_PARENT = 0x10003 ,
  G3DPROC_ZSORT = 0x10004
}
 

Public Member Functions

 ScnLeaf (MEMAllocator *pAllocator)
 
virtual void G3dProc (ulong task, ulong param, void *pInfo)=0
 
virtual ForEachResult ForEach (ForEachFunc pFunc, void *pInfo, bool postOrder)
 
virtual bool SetScnObjOption (ulong option, ulong value)
 
virtual bool GetScnObjOption (ulong option, ulong *pValue) const
 
virtual void CalcWorldMtx (const math::MTX34 *pParent, ulong *pParam)
 
ScaleProperty GetScaleProperty () const
 
void SetScale (float x, float y, float z)
 
void SetScale (const math::VEC3 &scale)
 
- Public Member Functions inherited from nw4r::g3d::ScnObj
 ScnObj (MEMAllocator *pAllocator)
 
virtual f32 GetValueForSortOpa () const
 
virtual f32 GetValueForSortXlu () const
 
void CalcViewMtx (const math::MTX34 *pCamera)
 
bool SetMtx (ScnObjMtxType type, const math::MTX34 *pMtx)
 
bool GetMtx (ScnObjMtxType type, math::MTX34 *pMtx) const
 
const math::MTX34GetMtxPtr (ScnObjMtxType type) const
 
void SetPriorityDrawOpa (int prio)
 
int GetPriorityDrawOpa () const
 
void SetPriorityDrawXlu (int prio)
 
int GetPriorityDrawXlu () const
 
void EnableScnObjCallbackTiming (Timing timing)
 
void EnableScnObjCallbackExecOp (ExecOp op)
 
bool SetBoundingVolume (ScnObjBoundingVolumeType type, const math::AABB *pAABB)
 
bool GetBoundingVolume (ScnObjBoundingVolumeType type, math::AABB *pAABB) const
 
bool SetBoundingVolume (const math::AABB *pAABB)
 
- Public Member Functions inherited from nw4r::g3d::G3dObj
virtual bool IsDerivedFrom (TypeObj other) const
 
virtual const TypeObj GetTypeObj () const
 
virtual const char * GetTypeName () const
 
 G3dObj (MEMAllocator *pAllocator, G3dObj *pParent)
 
G3dObjGetParent () const
 
void SetParent (G3dObj *pParent)
 
void DetachFromParent ()
 
void Destroy ()
 

Protected Member Functions

void DefG3dProcScnLeaf (ulong task, ulong param, void *pInfo)
 
- Protected Member Functions inherited from nw4r::g3d::ScnObj
void SetScnObjFlag (ScnObjFlag flag, ulong on)
 
ulong TestScnObjFlag (ScnObjFlag flag) const
 
bool IsG3dProcDisabled (ulong task) const
 
void CheckCallback_CALC_VIEW (Timing timing, ulong param, void *pInfo)
 
void CheckCallback_CALC_MAT (Timing timing, ulong param, void *pInfo)
 
void CheckCallback_CALC_WORLD (Timing timing, ulong param, void *pInfo)
 
void CheckCallback_DRAW_OPA (Timing timing, ulong param, void *pInfo)
 
void CheckCallback_DRAW_XLU (Timing timing, ulong param, void *pInfo)
 

Private Member Functions

 NW4R_G3D_RTTI_DECL_DERIVED (ScnLeaf, ScnObj)
 

Private Attributes

math::VEC3 mScale
 

Additional Inherited Members

- Static Public Member Functions inherited from nw4r::g3d::G3dObj
static const G3dObj::TypeObj GetTypeObjStatic ()
 
static void * Alloc (MEMAllocator *pAllocator, ulong size)
 
static void Dealloc (MEMAllocator *pAllocator, void *pBlock)
 
static void * operator new (size_t, void *pBlock)
 
static void operator delete (void *)
 
template<typename TTo>
static TTo * DynamicCast (G3dObj *pObj)
 
- Protected Types inherited from nw4r::g3d::ScnObj
enum  ScnObjFlag {
  SCNOBJFLAG_DISABLE_CALC_WORLD = (1 << 0) ,
  SCNOBJFLAG_DISABLE_CALC_MAT = (1 << 1) ,
  SCNOBJFLAG_DISABLE_CALC_VTX = (1 << 2) ,
  SCNOBJFLAG_DISABLE_CALC_VIEW = (1 << 3) ,
  SCNOBJFLAG_DISABLE_GATHER_SCNOBJ = (1 << 4) ,
  SCNOBJFLAG_DISABLE_DRAW_OPA = (1 << 5) ,
  SCNOBJFLAG_DISABLE_DRAW_XLU = (1 << 6) ,
  SCNOBJFLAG_DISABLE_UPDATEFRAME = (1 << 7) ,
  SCNOBJFLAG_IGNORE_ANMCHR_TRANS = (1 << 8) ,
  SCNOBJFLAG_ENABLE_CULLING = (1 << 28) ,
  SCNOBJFLAG_NOT_GATHER_DRAW_OPA = (1 << 29) ,
  SCNOBJFLAG_NOT_GATHER_DRAW_XLU = (1 << 30) ,
  SCNOBJFLAG_MTX_LOCAL_IDENTITY = (1 << 31) ,
  SCNOBJFLAG_DISABLE_DRAW
}
 
- Protected Attributes inherited from nw4r::g3d::ScnObj
math::MTX34 mMtxArray [MTX_TYPE_MAX]
 
math::AABB mAABB [BOUNDINGVOLUME_MAX]
 

Member Enumeration Documentation

◆ ScaleProperty

enum nw4r::g3d::ScnLeaf::ScaleProperty

Definition at line 317 of file g3d_scnobj.h.

◆ ScnLeafOption

enum nw4r::g3d::ScnLeaf::ScnLeafOption

Definition at line 324 of file g3d_scnobj.h.

Constructor & Destructor Documentation

◆ ScnLeaf()

nw4r::g3d::ScnLeaf::ScnLeaf ( MEMAllocator * pAllocator)
inlineexplicit

Definition at line 331 of file g3d_scnobj.h.

◆ ~ScnLeaf()

virtual nw4r::g3d::ScnLeaf::~ScnLeaf ( )
inlinevirtual

Definition at line 335 of file g3d_scnobj.h.

Member Function Documentation

◆ G3dProc()

virtual void nw4r::g3d::ScnLeaf::G3dProc ( ulong task,
ulong param,
void * pInfo )
pure virtual

Implements nw4r::g3d::ScnObj.

◆ ForEach()

virtual ForEachResult nw4r::g3d::ScnLeaf::ForEach ( ForEachFunc pFunc,
void * pInfo,
bool postOrder )
virtual

Implements nw4r::g3d::ScnObj.

◆ SetScnObjOption()

virtual bool nw4r::g3d::ScnLeaf::SetScnObjOption ( ulong option,
ulong value )
virtual

Reimplemented from nw4r::g3d::ScnObj.

◆ GetScnObjOption()

virtual bool nw4r::g3d::ScnLeaf::GetScnObjOption ( ulong option,
ulong * pValue ) const
virtual

Reimplemented from nw4r::g3d::ScnObj.

◆ CalcWorldMtx()

virtual void nw4r::g3d::ScnLeaf::CalcWorldMtx ( const math::MTX34 * pParent,
ulong * pParam )
virtual

Reimplemented from nw4r::g3d::ScnObj.

◆ SetScale() [1/2]

void nw4r::g3d::ScnLeaf::SetScale ( float x,
float y,
float z )
inline

Definition at line 348 of file g3d_scnobj.h.

◆ SetScale() [2/2]

void nw4r::g3d::ScnLeaf::SetScale ( const math::VEC3 & scale)
inline

Definition at line 354 of file g3d_scnobj.h.

Member Data Documentation

◆ mScale

math::VEC3 nw4r::g3d::ScnLeaf::mScale
private

Definition at line 362 of file g3d_scnobj.h.