NW4F G3d
Loading...
Searching...
No Matches
nw::g3d::SkeletalAnimObj Class Reference

#include <g3d_SkeletalAnimObj.h>

Inherits nw::g3d::ModelAnimObj.

Classes

class  InitArg
class  Sizer

Public Types

enum  Alignment { BUFFER_ALIGNMENT = LL_CACHE_FETCH_SIZE }
Public Types inherited from nw::g3d::AnimObj
enum  BindFlag { ENABLED = AnimBindTable::ENABLED , SKIP_CALC = AnimBindTable::SKIP_CALC , SKIP_APPLY = AnimBindTable::SKIP_APPLY , DISABLED = AnimBindTable::DISABLED }

Public Member Functions

 SkeletalAnimObj ()
bool Init (const InitArg &arg, void *pBuffer, size_t bufferSize)
virtual BindResult Bind (const ResModel *pModel)
virtual BindResult Bind (const ModelObj *pModelObj)
virtual void BindFast (const ResModel *pModel)
BindResult Bind (const ResSkeleton *pSkeleton)
BindResult Bind (const SkeletonObj *pSkeletonObj)
void BindFast (const ResSkeleton *pSkeleton)
void SetBindFlag (int boneIndex, BindFlag flag)
void SetBindFlag (const ResSkeleton *pSkeleton, int boneIndex, BindFlag flag)
BindFlag GetBindFlag (int boneIndex)
virtual void ClearResult ()
virtual void Calc ()
virtual void ApplyTo (ModelObj *pModelObj) const
void ClearResult (const ResSkeleton *pSkeleton)
void ApplyTo (SkeletonObj *pSkeletonObj) const
const ResSkeletalAnimGetResource () const
void SetResource (ResSkeletalAnim *pRes)
void ResetResource ()
BoneAnimResultGetResultArray ()
const BoneAnimResultGetResultArray () const
bool IsAcceptable (const ResSkeleton *pSkeleton) const
bool IsAcceptable (const ResSkeletalAnim *pRes) const
size_t CalcLCSize () const
size_t LCMount (void *pLC, size_t size, bool load)
void LCUnmount (bool store)
bool IsResultOnCache () const
Public Member Functions inherited from nw::g3d::ModelAnimObj
AnimBindTableGetBindTable ()
const AnimBindTableGetBindTable () const
bool IsTargetBound () const
int GetAnimCount () const
int GetTargetCount () const
Public Member Functions inherited from nw::g3d::AnimObj
virtual ~AnimObj ()
AnimFrameCtrlGetFrameCtrl ()
const AnimFrameCtrlGetFrameCtrl () const
void SetFrameCtrl (AnimFrameCtrl *pFrameCtrl)
AnimFrameCtrlGetDefaultFrameCtrl ()
const AnimFrameCtrlGetDefaultFrameCtrl () const
AnimContextGetContext ()
const AnimContextGetContext () const
void InvalidateContext ()
int GetCurveCount () const
void * GetBufferPtr ()

Static Public Member Functions

static size_t CalcBufferSize (const InitArg &arg)

Protected Types

enum  Flag { CACHE_RESULT = 0x1 << 3 , INVALID_RESULT = 0x1 << 4 , MASK_RESULT = CACHE_RESULT | INVALID_RESULT }

Protected Member Functions

ResBoneAnimGetBoneAnim (int animIndex)
const ResBoneAnimGetBoneAnim (int animIndex) const
template<typename ConvRot>
void CalcImpl ()
template<typename ConvRot>
void ApplyToImpl (SkeletonObj *pSkeletonObj) const
Protected Member Functions inherited from nw::g3d::ModelAnimObj
 ModelAnimObj ()
void SetTargetBound ()
void SetTargetUnbound ()
void SetBindFlagImpl (int targetIndex, BindFlag flag)
BindFlag GetBindFlagImpl (int targetIndex) const
Protected Member Functions inherited from nw::g3d::AnimObj
 AnimObj ()
void SetBufferPtr (void *pBuffer)
void SetResultBuffer (void *pBuffer)
void * GetResultBuffer ()
const void * GetResultBuffer () const
void ResetFrameCtrl (int frameCount, bool loop)
bool IsFrameChanged () const
void UpdateLastFrame ()

Private Member Functions

 NW_G3D_DISALLOW_COPY_AND_ASSIGN (SkeletalAnimObj)

Private Attributes

ResSkeletalAnimm_pRes
ResBoneAnimDatam_pBoneAnimArray
s32 m_MaxBoneAnim
bit32 m_Flag
void * m_pMemResultBuffer
void(SkeletalAnimObj::* m_pFuncCalcImpl )()
void(SkeletalAnimObj::* m_pFuncApplyToImpl )(SkeletonObj *) const

Member Enumeration Documentation

◆ Alignment

Enumerator
BUFFER_ALIGNMENT 

◆ Flag

Enumerator
CACHE_RESULT 
INVALID_RESULT 
MASK_RESULT 

Constructor & Destructor Documentation

◆ SkeletalAnimObj()

nw::g3d::SkeletalAnimObj::SkeletalAnimObj ( )
inline

Member Function Documentation

◆ Init()

bool nw::g3d::SkeletalAnimObj::Init ( const InitArg & arg,
void * pBuffer,
size_t bufferSize )

◆ CalcBufferSize()

size_t nw::g3d::SkeletalAnimObj::CalcBufferSize ( const InitArg & arg)
static

◆ Bind() [1/4]

BindResult nw::g3d::SkeletalAnimObj::Bind ( const ResModel * pModel)
virtual

Implements nw::g3d::ModelAnimObj.

◆ Bind() [2/4]

BindResult nw::g3d::SkeletalAnimObj::Bind ( const ModelObj * pModelObj)
virtual

Implements nw::g3d::ModelAnimObj.

◆ BindFast() [1/2]

void nw::g3d::SkeletalAnimObj::BindFast ( const ResModel * pModel)
virtual

Implements nw::g3d::ModelAnimObj.

◆ Bind() [3/4]

BindResult nw::g3d::SkeletalAnimObj::Bind ( const ResSkeleton * pSkeleton)

◆ Bind() [4/4]

BindResult nw::g3d::SkeletalAnimObj::Bind ( const SkeletonObj * pSkeletonObj)

◆ BindFast() [2/2]

void nw::g3d::SkeletalAnimObj::BindFast ( const ResSkeleton * pSkeleton)

◆ SetBindFlag() [1/2]

void nw::g3d::SkeletalAnimObj::SetBindFlag ( int boneIndex,
BindFlag flag )
inline

◆ SetBindFlag() [2/2]

void nw::g3d::SkeletalAnimObj::SetBindFlag ( const ResSkeleton * pSkeleton,
int boneIndex,
BindFlag flag )

◆ GetBindFlag()

BindFlag nw::g3d::SkeletalAnimObj::GetBindFlag ( int boneIndex)
inline

◆ ClearResult() [1/2]

void nw::g3d::SkeletalAnimObj::ClearResult ( )
virtual

Implements nw::g3d::AnimObj.

◆ Calc()

void nw::g3d::SkeletalAnimObj::Calc ( )
virtual

Implements nw::g3d::AnimObj.

◆ ApplyTo() [1/2]

void nw::g3d::SkeletalAnimObj::ApplyTo ( ModelObj * pModelObj) const
virtual

Implements nw::g3d::ModelAnimObj.

◆ ClearResult() [2/2]

void nw::g3d::SkeletalAnimObj::ClearResult ( const ResSkeleton * pSkeleton)

◆ ApplyTo() [2/2]

void nw::g3d::SkeletalAnimObj::ApplyTo ( SkeletonObj * pSkeletonObj) const

◆ GetResource()

const ResSkeletalAnim * nw::g3d::SkeletalAnimObj::GetResource ( ) const
inline

◆ SetResource()

void nw::g3d::SkeletalAnimObj::SetResource ( ResSkeletalAnim * pRes)

◆ ResetResource()

void nw::g3d::SkeletalAnimObj::ResetResource ( )
inline

◆ GetResultArray() [1/2]

BoneAnimResult * nw::g3d::SkeletalAnimObj::GetResultArray ( )
inline

◆ GetResultArray() [2/2]

const BoneAnimResult * nw::g3d::SkeletalAnimObj::GetResultArray ( ) const
inline

◆ IsAcceptable() [1/2]

bool nw::g3d::SkeletalAnimObj::IsAcceptable ( const ResSkeleton * pSkeleton) const
inline

◆ IsAcceptable() [2/2]

bool nw::g3d::SkeletalAnimObj::IsAcceptable ( const ResSkeletalAnim * pRes) const
inline

◆ CalcLCSize()

size_t nw::g3d::SkeletalAnimObj::CalcLCSize ( ) const
inline

◆ LCMount()

size_t nw::g3d::SkeletalAnimObj::LCMount ( void * pLC,
size_t size,
bool load )

◆ LCUnmount()

void nw::g3d::SkeletalAnimObj::LCUnmount ( bool store)

◆ IsResultOnCache()

bool nw::g3d::SkeletalAnimObj::IsResultOnCache ( ) const
inline

◆ GetBoneAnim() [1/2]

ResBoneAnim * nw::g3d::SkeletalAnimObj::GetBoneAnim ( int animIndex)
inlineprotected

◆ GetBoneAnim() [2/2]

const ResBoneAnim * nw::g3d::SkeletalAnimObj::GetBoneAnim ( int animIndex) const
inlineprotected

◆ CalcImpl()

template<typename ConvRot>
void nw::g3d::SkeletalAnimObj::CalcImpl ( )
protected

◆ ApplyToImpl()

template<typename ConvRot>
void nw::g3d::SkeletalAnimObj::ApplyToImpl ( SkeletonObj * pSkeletonObj) const
protected

◆ NW_G3D_DISALLOW_COPY_AND_ASSIGN()

nw::g3d::SkeletalAnimObj::NW_G3D_DISALLOW_COPY_AND_ASSIGN ( SkeletalAnimObj )
private

Member Data Documentation

◆ m_pRes

ResSkeletalAnim* nw::g3d::SkeletalAnimObj::m_pRes
private

◆ m_pBoneAnimArray

ResBoneAnimData* nw::g3d::SkeletalAnimObj::m_pBoneAnimArray
private

◆ m_MaxBoneAnim

s32 nw::g3d::SkeletalAnimObj::m_MaxBoneAnim
private

◆ m_Flag

bit32 nw::g3d::SkeletalAnimObj::m_Flag
mutableprivate

◆ m_pMemResultBuffer

void* nw::g3d::SkeletalAnimObj::m_pMemResultBuffer
private

◆ m_pFuncCalcImpl

void(SkeletalAnimObj::* nw::g3d::SkeletalAnimObj::m_pFuncCalcImpl) ()
private

◆ m_pFuncApplyToImpl

void(SkeletalAnimObj::* nw::g3d::SkeletalAnimObj::m_pFuncApplyToImpl) (SkeletonObj *) const
private