14 ,
public Toshi::TRefCounted
45 void SetTransform(
const Toshi::TMatrix44& a_rcTransform );
53 Toshi::TTransformObject&
GetTransform()
const {
return m_pSceneObject->GetTransform(); }
58 const Toshi::TVector4&
GetScale()
const {
return m_Scale; }
66 static void RenderInstanceCallback( Toshi::TModelInstance* a_pInstance,
void* a_pUserData );
69 Toshi::TVector4 m_Scale;
73 Toshi::TSceneObject* m_pSceneObject;
74 Toshi::TEmitter<AModelInstance, ChangeEvent> m_ChangeEmitter;
86 AModel(
const Toshi::TPString8& a_rName, Toshi::TTRB* a_pTRB );
96 Toshi::T2Vector<AModelInstanceRef, MAX_NUM_INSTANCES>&
GetInstances() {
return m_vecInstanceRefs; }
98 const Toshi::TPString8&
GetName()
const {
return m_Name; }
99 Toshi::TSkeleton*
GetSkeleton()
const {
return m_pManagedModel->GetModel()->GetSkeleton(); }
102 static Toshi::TManagedModel*
Create(
const Toshi::TPString8& a_rFilePath, Toshi::TTRB* a_pTRB );
103 static void GetNameFromPath(
const Toshi::TPString8& a_FilePath, Toshi::TString8& a_rName );
107 inline static TUINT ms_uiNumCreated;
111 Toshi::TManagedModel* m_pManagedModel;
112 Toshi::TPString8 m_Name;
113 Toshi::T2Vector<AModelInstanceRef, MAX_NUM_INSTANCES> m_vecInstanceRefs;
114 Toshi::TVector3 m_Vec1;
115 Toshi::TVector3 m_Vec2;
TRB (Toshi Relocatable Binary) resource system for the Toshi engine.
Toshi::TRef< AModelInstance > AModelInstanceRef
TUINT GetClipFlags() const
Toshi::TTransformObject & GetTransform() const
AModel * GetModel() const
void SetReceivesLight(TBOOL a_bReceives)
@ Flags_DrawWithDefaultMaterials
TBOOL IsUpdatingSkeleton() const
TBOOL DrawWithDefaultMaterials() const
Toshi::TSkeleton * GetSkeleton() const
const Toshi::TVector4 & GetScale() const
const Toshi::TPString8 & GetModelName() const
@ ChangeEvent_DisabledSkeletonUpdate
@ ChangeEvent_EnabledSkeletonUpdate
TBOOL ReceivesLight() const
void SetTransform(const Toshi::TMatrix44 &a_rcTransform)
AModelInstance(AModel *a_pModel, Toshi::TSceneObject *a_pSceneObject, TBOOL a_bEnableSkeletonUpdate)
void SetVisible(TBOOL a_bVisible)
TDECLARE_CLASS(AModelInstance, Toshi::TObject)
Toshi::TSceneObject * GetSceneObject() const
void SetClipFlags(TUINT a_uiClipFlags)
void SetSkeletonUpdating(TBOOL a_bUpdating)
void DestroyInstance(AModelInstance *a_pInstance)
AModelInstanceRef CreateInstance()
static void GetNameFromPath(const Toshi::TPString8 &a_FilePath, Toshi::TString8 &a_rName)
AModel(const Toshi::TPString8 &a_rName, Toshi::TTRB *a_pTRB)
const Toshi::TPString8 & GetName() const
TSIZE GetNumInstances() const
Toshi::TSkeleton * GetSkeleton() const
static constexpr TUINT32 MAX_NUM_INSTANCES
void Render(TBOOL a_bIsSomething)
void Update(TFLOAT a_fDeltaTime)
static Toshi::TManagedModel * Create(const Toshi::TPString8 &a_rFilePath, Toshi::TTRB *a_pTRB)
static Toshi::TString8 GenerateInstanceName(const Toshi::TPString8 &a_FilePath)
Toshi::T2Vector< AModelInstanceRef, MAX_NUM_INSTANCES > & GetInstances()