GlobalMaterial.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _GLOBALMATERIAL_H
00015 #define _GLOBALMATERIAL_H
00016 
00017 #include "Template.h"
00018 
00019 // Forward declaration
00020 class CSLBaseMaterial;
00021 
00027 class XSIEXPORT CSLGlobalMaterial
00028     : public CSLTemplate
00029 {
00030 public:
00032     enum EPropagationType
00033     {
00034         SI_BRANCH,      
00035         SI_NODE,        
00036         SI_INHERITED    
00037     };
00038 
00046     CSLGlobalMaterial
00047     (
00048         CSLScene* in_pScene,
00049         CSLModel *in_pModel,
00050         CdotXSITemplate* in_pTemplate
00051     );
00052 
00054     ~CSLGlobalMaterial();
00055 
00059     CSLBaseMaterial* GetMaterial();
00060 
00064     CSIBCString GetMaterialName();
00065 
00069     SI_Void SetMaterial( CSLBaseMaterial*  in_pNewMaterial );
00070 
00074     SI_Void SetMaterialName( const CSIBCString&  in_szNewMaterialName );
00075 
00079     EPropagationType GetPropagationType();
00080 
00084     SI_Void SetPropagationType( EPropagationType in_PropagationType );
00085 
00089     CSLTemplate::ETemplateType Type();
00090 
00094     SI_Error Synchronize();
00095 
00096 private:
00097     CSLBaseMaterial* m_pMaterial;
00098     CSIBCString m_szMaterialName;
00099     CSLStrEnumProxy<EPropagationType, SI_INHERITED>  m_PropagationType;
00100 
00101     // reserved for future use
00102     SI_Void *m_pReserved;
00103 };
00104 
00105 #endif