MaterialLibrary.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _MATERIALLIBRARY_H
00015 #define _MATERIALLIBRARY_H
00016 
00017 #include "Template.h"
00018 
00019 // Forward declaration
00020 class CSLBaseMaterial;
00021 class CSLMaterial;
00022 class CSLXSIMaterial;
00023 
00024 
00030 class XSIEXPORT CSLMaterialLibrary
00031     : public CSLTemplate
00032 {
00033 public:
00034     CSLMaterialLibrary(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00035     virtual ~CSLMaterialLibrary();
00036 
00040     CSLMaterial* AddMaterial();
00041 
00045     virtual CSLXSIMaterial* AddXSIMaterial();
00046 
00050     SI_Error ClearMaterials();
00051 
00055     CSLBaseMaterial** GetMaterialList();
00056 
00060     SI_Int GetMaterialCount();
00061 
00066     SI_Error RemoveMaterial(SI_Int in_nIndex);
00067 
00072     SI_Error RemoveMaterial(CSLBaseMaterial *in_pMaterial);
00073 
00074     CSLBaseMaterial* FindMaterial( const SI_Char* in_szName );
00075 
00076     CSLBaseMaterial* ConnectMaterial(CSLBaseMaterial* in_pNewMaterial);
00077 
00078     virtual SI_Error Synchronize();
00079 
00083     virtual ETemplateType Type();
00084 
00085 protected:
00086     CSIBCArray<CSLBaseMaterial *> m_Materials;
00087 
00088 private:
00089     void *m_pReserved;  // reserved for future extension
00090 };
00091 
00092 #endif