NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
nw4r::g3d::ScnGroup Class Reference
Inheritance diagram for nw4r::g3d::ScnGroup:
[legend]

Description

Definition at line 372 of file g3d_scnobj.h.

Public Member Functions

 ScnGroup (MEMAllocator *pAllocator, ScnObj **ppObj, ulong capacity)
 
virtual void G3dProc (ulong task, ulong param, void *pInfo)
 
virtual ForEachResult ForEach (ForEachFunc pFunc, void *pInfo, bool postOrder)
 
virtual bool Insert (ulong idx, ScnObj *pObj)
 
virtual ScnObjRemove (ulong idx)
 
virtual bool Remove (ScnObj *pObj)
 
ScnObj ** Begin ()
 
ScnObj ** End ()
 
ScnObjoperator[] (ulong idx)
 
ulong Size () const
 
bool Empty () const
 
bool PushBack (ScnObj *pObj)
 
ScnObjPopBack ()
 
void Clear ()
 
- Public Member Functions inherited from nw4r::g3d::ScnObj
 ScnObj (MEMAllocator *pAllocator)
 
virtual bool SetScnObjOption (ulong option, ulong value)
 
virtual bool GetScnObjOption (ulong option, ulong *pValue) const
 
virtual f32 GetValueForSortOpa () const
 
virtual f32 GetValueForSortXlu () const
 
virtual void CalcWorldMtx (const math::MTX34 *pParent, ulong *pParam)
 
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 DefG3dProcScnGroup (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

void ScnGroup_G3DPROC_GATHER_SCNOBJ (ulong param, IScnObjGather *pCollection)
 
void ScnGroup_G3DPROC_CALC_WORLD (ulong param, const math::MTX34 *pParent)
 
void ScnGroup_G3DPROC_CALC_MAT (ulong param, void *pInfo)
 
void ScnGroup_G3DPROC_CALC_VIEW (ulong param, const math::MTX34 *pCamera)
 
 NW4R_G3D_RTTI_DECL_DERIVED (ScnGroup, ScnObj)
 

Private Attributes

ScnObj ** mpScnObjArray
 
ulong mSizeScnObj
 
ulong mNumScnObj
 

Additional Inherited Members

- 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
}
 
- 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 Function Documentation

◆ G3dProc()

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

Implements nw4r::g3d::ScnObj.

◆ ForEach()

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

Implements nw4r::g3d::ScnObj.

◆ Begin()

ScnObj ** nw4r::g3d::ScnGroup::Begin ( )
inline

Definition at line 386 of file g3d_scnobj.h.

◆ End()

ScnObj ** nw4r::g3d::ScnGroup::End ( )
inline

Definition at line 389 of file g3d_scnobj.h.

◆ operator[]()

ScnObj * nw4r::g3d::ScnGroup::operator[] ( ulong idx)
inline

Definition at line 393 of file g3d_scnobj.h.

◆ Size()

ulong nw4r::g3d::ScnGroup::Size ( ) const
inline

Definition at line 397 of file g3d_scnobj.h.

◆ Empty()

bool nw4r::g3d::ScnGroup::Empty ( ) const
inline

Definition at line 400 of file g3d_scnobj.h.

◆ PushBack()

bool nw4r::g3d::ScnGroup::PushBack ( ScnObj * pObj)
inline

Definition at line 404 of file g3d_scnobj.h.

◆ PopBack()

ScnObj * nw4r::g3d::ScnGroup::PopBack ( )
inline

Definition at line 407 of file g3d_scnobj.h.

◆ Clear()

void nw4r::g3d::ScnGroup::Clear ( )
inline

Definition at line 415 of file g3d_scnobj.h.

Member Data Documentation

◆ mpScnObjArray

ScnObj** nw4r::g3d::ScnGroup::mpScnObjArray
private

Definition at line 431 of file g3d_scnobj.h.

◆ mSizeScnObj

ulong nw4r::g3d::ScnGroup::mSizeScnObj
private

Definition at line 432 of file g3d_scnobj.h.

◆ mNumScnObj

ulong nw4r::g3d::ScnGroup::mNumScnObj
private

Definition at line 433 of file g3d_scnobj.h.