OpenBarnyard
 
Loading...
Searching...
No Matches
AModelInstance Class Reference

#include <AModel.h>

Inheritance diagram for AModelInstance:

Public Types

enum  Flags_ : Flags {
  Flags_None = 0 , Flags_UpdatingSkeleton = BITFLAG( 0 ) , Flags_Visible = BITFLAG( 1 ) , Flags_DrawWithDefaultMaterials = BITFLAG( 2 ) ,
  Flags_ReceivesLight = BITFLAG( 3 ) , Flags_Unknown = BITFLAG( 4 )
}
 
enum  ChangeEvent : TUINT32 { ChangeEvent_Visibility , ChangeEvent_UNK2 , ChangeEvent_EnabledSkeletonUpdate , ChangeEvent_DisabledSkeletonUpdate }
 
using Flags = TUINT8
 

Public Member Functions

 TDECLARE_CLASS (AModelInstance, Toshi::TObject)
 
 AModelInstance ()
 
 AModelInstance (AModel *a_pModel, Toshi::TSceneObject *a_pSceneObject, TBOOL a_bEnableSkeletonUpdate)
 
void SetTransform (const Toshi::TMatrix44 &a_rcTransform)
 
void SetSkeletonUpdating (TBOOL a_bUpdating)
 
void SetReceivesLight (TBOOL a_bReceives)
 
void SetVisible (TBOOL a_bVisible)
 
AModelGetModel () const
 
const Toshi::TPString8 & GetModelName () const
 
Toshi::TSceneObject * GetSceneObject () const
 
Toshi::TTransformObject & GetTransform () const
 
Toshi::TSkeleton * GetSkeleton () const
 
TUINT GetClipFlags () const
 
void SetClipFlags (TUINT a_uiClipFlags)
 
const Toshi::TVector4 & GetScale () const
 
TBOOL IsUpdatingSkeleton () const
 
TBOOL IsVisible () const
 
TBOOL DrawWithDefaultMaterials () const
 
TBOOL ReceivesLight () const
 

Friends

class AModel
 

Detailed Description

Definition at line 13 of file AModel.h.

Member Typedef Documentation

◆ Flags

Definition at line 20 of file AModel.h.

Member Enumeration Documentation

◆ ChangeEvent

Enumerator
ChangeEvent_Visibility 
ChangeEvent_UNK2 
ChangeEvent_EnabledSkeletonUpdate 
ChangeEvent_DisabledSkeletonUpdate 

Definition at line 31 of file AModel.h.

◆ Flags_

Enumerator
Flags_None 
Flags_UpdatingSkeleton 
Flags_Visible 
Flags_DrawWithDefaultMaterials 
Flags_ReceivesLight 
Flags_Unknown 

Definition at line 21 of file AModel.h.

22 {
23 Flags_None = 0,
29 };
#define BITFLAG(x)
Definition Defines.h:10
@ Flags_DrawWithDefaultMaterials
Definition AModel.h:26
@ Flags_ReceivesLight
Definition AModel.h:27
@ Flags_UpdatingSkeleton
Definition AModel.h:24

Constructor & Destructor Documentation

◆ AModelInstance() [1/2]

AModelInstance::AModelInstance ( )

Definition at line 265 of file AModel.cpp.

266 : m_ChangeEmitter( this )
267{
268 TFIXME( "Initialise some unknown members" );
269
270 m_Scale = TVector4( 1.0f, 1.0f, 1.0f, 1.0f );
271 m_pModel = TNULL;
272 m_pSceneObject = TNULL;
273 m_uiClipFlags = 0x3F;
274 m_eFlags = 0b00010000 | Flags_ReceivesLight;
275}
#define TFIXME(DESC)
Definition Defines.h:135
#define TNULL
Definition Typedefs.h:23

◆ AModelInstance() [2/2]

AModelInstance::AModelInstance ( AModel * a_pModel,
Toshi::TSceneObject * a_pSceneObject,
TBOOL a_bEnableSkeletonUpdate )

Member Function Documentation

◆ DrawWithDefaultMaterials()

TBOOL AModelInstance::DrawWithDefaultMaterials ( ) const
inline

Definition at line 62 of file AModel.h.

62{ return m_eFlags & Flags_DrawWithDefaultMaterials; }

◆ GetClipFlags()

TUINT AModelInstance::GetClipFlags ( ) const
inline

Definition at line 55 of file AModel.h.

55{ return m_uiClipFlags; }

◆ GetModel()

AModel * AModelInstance::GetModel ( ) const
inline

Definition at line 50 of file AModel.h.

50{ return m_pModel; }

◆ GetModelName()

const TPString8 & AModelInstance::GetModelName ( ) const

Definition at line 479 of file AModel.cpp.

480{
481 return m_pModel->GetName();
482}

◆ GetScale()

const Toshi::TVector4 & AModelInstance::GetScale ( ) const
inline

Definition at line 58 of file AModel.h.

58{ return m_Scale; }

◆ GetSceneObject()

Toshi::TSceneObject * AModelInstance::GetSceneObject ( ) const
inline

Definition at line 52 of file AModel.h.

52{ return m_pSceneObject; }

◆ GetSkeleton()

Toshi::TSkeleton * AModelInstance::GetSkeleton ( ) const
inline

Definition at line 54 of file AModel.h.

54{ return GetSceneObject()->GetInstance()->GetSkeletonInstance()->GetSkeleton(); }
Toshi::TSceneObject * GetSceneObject() const
Definition AModel.h:52

◆ GetTransform()

Toshi::TTransformObject & AModelInstance::GetTransform ( ) const
inline

Definition at line 53 of file AModel.h.

53{ return m_pSceneObject->GetTransform(); }

◆ IsUpdatingSkeleton()

TBOOL AModelInstance::IsUpdatingSkeleton ( ) const
inline

Definition at line 60 of file AModel.h.

60{ return m_eFlags & Flags_UpdatingSkeleton; }

◆ IsVisible()

TBOOL AModelInstance::IsVisible ( ) const
inline

Definition at line 61 of file AModel.h.

61{ return m_eFlags & Flags_Visible; }

◆ ReceivesLight()

TBOOL AModelInstance::ReceivesLight ( ) const
inline

Definition at line 63 of file AModel.h.

63{ return m_eFlags & Flags_ReceivesLight; }

◆ SetClipFlags()

void AModelInstance::SetClipFlags ( TUINT a_uiClipFlags)
inline

Definition at line 56 of file AModel.h.

56{ m_uiClipFlags = a_uiClipFlags; }

◆ SetReceivesLight()

void AModelInstance::SetReceivesLight ( TBOOL a_bReceives)

Definition at line 451 of file AModel.cpp.

452{
453 if ( a_bReceives )
454 m_eFlags |= Flags_ReceivesLight;
455 else
456 m_eFlags &= ~Flags_ReceivesLight;
457}

◆ SetSkeletonUpdating()

void AModelInstance::SetSkeletonUpdating ( TBOOL a_bUpdating)

Definition at line 426 of file AModel.cpp.

427{
428 if ( a_bUpdating )
429 {
430 if ( !IsUpdatingSkeleton() )
431 {
432 m_pSceneObject->EnableSkeletonUpdate();
433 m_ChangeEmitter.Throw( ChangeEvent_EnabledSkeletonUpdate );
434 }
435
436 m_eFlags |= Flags_UpdatingSkeleton;
437 }
438 else
439 {
440 if ( IsUpdatingSkeleton() )
441 {
442 m_pSceneObject->DisableSkeletonUpdate();
443 m_ChangeEmitter.Throw( ChangeEvent_DisabledSkeletonUpdate );
444 }
445
446 m_eFlags &= ~Flags_UpdatingSkeleton;
447 }
448}
TBOOL IsUpdatingSkeleton() const
Definition AModel.h:60

◆ SetTransform()

void AModelInstance::SetTransform ( const Toshi::TMatrix44 & a_rcTransform)

Definition at line 278 of file AModel.cpp.

279{
280 m_pSceneObject->GetTransform().SetMatrix( a_rcTransform );
281}

◆ SetVisible()

void AModelInstance::SetVisible ( TBOOL a_bVisible)

Definition at line 460 of file AModel.cpp.

461{
462 if ( a_bVisible )
463 {
464 if ( !IsVisible() )
465 m_ChangeEmitter.Throw( ChangeEvent_Visibility );
466
467 m_eFlags |= Flags_Visible;
468 }
469 else
470 {
471 if ( IsVisible() )
472 m_ChangeEmitter.Throw( ChangeEvent_Visibility );
473
474 m_eFlags &= ~Flags_Visible;
475 }
476}
TBOOL IsVisible() const
Definition AModel.h:61

◆ TDECLARE_CLASS()

AModelInstance::TDECLARE_CLASS ( AModelInstance ,
Toshi::TObject  )

Friends And Related Symbol Documentation

◆ AModel

friend class AModel
friend

Definition at line 39 of file AModel.h.


The documentation for this class was generated from the following files: