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

#include <TModelManager.h>

Public Member Functions

 TManagedModel ()
 
 ~TManagedModel ()
 
TBOOL Create (const TCHAR *a_szFileName, TTRB *a_pTRB)
 
TSceneObjectCreateSceneObject ()
 
void SetModel (TModel *a_pModel)
 
TModelGetModel () const
 
TModelManager::ModelNodeGetRegistryEntry () const
 

Public Attributes

friend TModelManager
 

Detailed Description

Definition at line 78 of file TModelManager.h.

Constructor & Destructor Documentation

◆ TManagedModel()

TManagedModel::TManagedModel ( )

Definition at line 15 of file TModelManager.cpp.

16 : m_pModel( TNULL )
17{
18 static TBOOL s_bFilledList = TFALSE;
19
20 if ( !s_bFilledList )
21 {
22 for ( TUINT i = 0; i < TModelManager::MAX_NUM_MODELS; i++ )
23 {
25 }
26
27 s_bFilledList = TTRUE;
28 }
29
30 m_pEntry = TNULL;
31}
unsigned int TUINT
Definition Typedefs.h:8
#define TNULL
Definition Typedefs.h:23
#define TFALSE
Definition Typedefs.h:24
#define TTRUE
Definition Typedefs.h:25
bool TBOOL
Definition Typedefs.h:6
static ModelNode * ms_pEntries
static constexpr TUINT MAX_NUM_MODELS
static T2DList< ModelNode > ms_oFreeList

◆ ~TManagedModel()

TManagedModel::~TManagedModel ( )

Definition at line 33 of file TModelManager.cpp.

34{
35 if ( m_pModel )
36 {
37 if ( m_pEntry )
38 {
39 if ( m_pEntry->GetRefCount() == 1 )
40 {
41 m_pModel->Delete();
42 m_pEntry->Remove();
43 TModelManager::ms_oFreeList.PushBack( m_pEntry );
44
45 m_pModel = TNULL;
46 m_pEntry = TNULL;
47 }
48 else
49 {
50 m_pEntry->DecRefCount();
51 m_pModel = TNULL;
52 m_pEntry = TNULL;
53 }
54 }
55 else
56 {
57 m_pModel->Delete();
58 m_pModel = TNULL;
59 m_pEntry = TNULL;
60 }
61 }
62}

Member Function Documentation

◆ Create()

TBOOL TManagedModel::Create ( const TCHAR * a_szFileName,
TTRB * a_pTRB )

Definition at line 134 of file TModelManager.cpp.

135{
136 m_pModel = TNULL;
137 m_pEntry = TModelManager::CreateModel( a_szFileName, *this, a_pTRB );
138
139 return m_pModel != TNULL;
140}
static ModelNode * CreateModel(const TCHAR *a_szFileName, TManagedModel &a_rModelRef, TTRB *a_pAssetTRB)

◆ CreateSceneObject()

TSceneObject * TManagedModel::CreateSceneObject ( )

Definition at line 142 of file TModelManager.cpp.

143{
144 TSceneObject* pSceneObject = new TSceneObject();
145 pSceneObject->Create( this );
146
147 return pSceneObject;
148}
void Create(TManagedModel *a_pModelPtr)

◆ GetModel()

TModel * TManagedModel::GetModel ( ) const
inline

Definition at line 92 of file TModelManager.h.

92{ return m_pModel; }

◆ GetRegistryEntry()

TModelManager::ModelNode * TManagedModel::GetRegistryEntry ( ) const
inline

Definition at line 93 of file TModelManager.h.

93{ return m_pEntry; }

◆ SetModel()

void TManagedModel::SetModel ( TModel * a_pModel)
inline

Definition at line 90 of file TModelManager.h.

90{ m_pModel = a_pModel; }

Member Data Documentation

◆ TModelManager

friend TManagedModel::TModelManager

Definition at line 81 of file TModelManager.h.


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