//CModelManager - [2020-04-13 11:57:46]
#ifndef _CMODELMANAGER_H_
#define _CMODELMANAGER_H_

#include "FTTMutex.h"
#include "CFTTVector32.h"
#include "CFTTMatrix32.h"
#include "CFTTMatSetupData.h"
#include "CFTTModel.h"
#include "CModelMan_ModelInfo.h"


/*
00185590 CModelManager::Initialise()
00185594 CModelManager::CreateModel(int,EModelLoadFlags)
0018563C CModelManager::CreateModel(CFTTModel *pFTTModel,char * pDir,EModelCopyFlags eFlag)
00185724 CModelManager::LoadModel(char const*,CFTTMatSetupData const&,EModelLoadFlags,bool)
00185824 CModelManager::CalculateBounds(CFTTModel *)
00185988 CModelManager::LoadModel(char const*,char const*,EModelLoadFlags,bool)
001859DC CModelManager::FreeModel(CFTTModel *)
00185A28 CModelManager::GetFirstMaterialID(CFTTModel *)
00185A7C CModelManager::GetNumMaterials(CFTTModel *)
00185AD0 CModelManager::CreateVolatileResources()
00185B1C CModelManager::CreateManagedResources()
00185B68 CModelManager::DeleteVolatileResources()
00185BB4 CModelManager::DeleteManagedResources()
00185C00 CModelManager::CalculateBoundingSphere(CFTTModel *,CFTTVector32 &,float &,float &,CFTTMatrix32 const*)
00185D6C CModelManager::RepairHumanBoundingBox(CFTTModel *)
00185DE2 CModelManager::FixUVs(CFTTModel *)

m_tCache
第一个成员应该是int
第二个成员应该是 CFTTModel*
*/

class CModelManager {
public:
  static void Initialise();  //00185590

  static void CreateModel(int, EModelLoadFlags);  //00185594

  static void CreateModel(CFTTModel *pFTTModel,
                          char *pDir,
                          EModelCopyFlags eFlag);  //0018563C

  static CFTTModel *LoadModel(char const *,
                              CFTTMatSetupData const &,
                              EModelLoadFlags, bool);  //00185724

  static void CalculateBounds(CFTTModel *pModel);  //00185824

  static CFTTModel *LoadModel(char const *,
                              char const *,
                              EModelLoadFlags, bool);  //00185988
  static void FreeModel(CFTTModel *);                  //001859DC
  static void GetFirstMaterialID(CFTTModel *);         //00185A28
  static void GetNumMaterials(CFTTModel *);            //00185A7C
  static void CreateVolatileResources();               //00185AD0
  static void CreateManagedResources();                //00185B1C
  static void DeleteVolatileResources();               //00185B68
  static void DeleteManagedResources();                //00185BB4
  static void CalculateBoundingSphere(CFTTModel *,
                                      CFTTVector32 &,
                                      float &,
                                      float &,
                                      CFTTMatrix32 const *);  //00185C00
  static void RepairHumanBoundingBox(CFTTModel *);            //00185D6C
  static void FixUVs(CFTTModel *);                            //00185DE2

  static CModelMan_ModelInfo m_tCache[1024];  //00457BF0
  static FTTMutex m_tMutex;                   //0045DBF0
};

#endif  //_CMODELMANAGER_H_