00001 //*************************************************************************************** 00002 // 00003 // File supervisor: Crosswalk team 00004 // 00005 // Copyright 2008 Autodesk, Inc. All rights reserved. 00006 // Use of this software is subject to the terms of the Autodesk license agreement 00007 // provided at the time of installation or download, or which otherwise accompanies 00008 // this software in either electronic or hard copy form. 00009 // 00010 //*************************************************************************************** 00011 00012 #ifndef _GLOBALMATERIAL_H 00013 #define _GLOBALMATERIAL_H 00014 00015 #include "Template.h" 00016 00017 // Forward declaration 00018 class CSLBaseMaterial; 00019 00023 class XSIEXPORT CSLGlobalMaterial 00024 : public CSLTemplate 00025 { 00026 public: 00028 enum EPropagationType 00029 { 00030 SI_BRANCH, 00031 SI_NODE, 00032 SI_INHERITED 00033 }; 00034 00036 00043 CSLGlobalMaterial 00044 ( 00045 CSLScene* in_pScene, 00046 CSLModel *in_pModel, 00047 CdotXSITemplate* in_pTemplate 00048 ); 00049 00051 ~CSLGlobalMaterial(); 00052 00054 00057 CSLBaseMaterial* GetMaterial(); 00058 00060 00063 CSIBCString GetMaterialName(); 00064 00066 00069 SI_Void SetMaterial( CSLBaseMaterial* in_pNewMaterial ); 00070 00072 00075 SI_Void SetMaterialName( const CSIBCString& in_szNewMaterialName ); 00076 00078 00081 EPropagationType GetPropagationType(); 00082 00084 00087 SI_Void SetPropagationType( EPropagationType in_PropagationType ); 00088 00090 00093 CSLTemplate::ETemplateType Type(); 00094 00096 00099 SI_Error Synchronize(); 00100 00101 private: 00102 CSLBaseMaterial* m_pMaterial; 00103 CSIBCString m_szMaterialName; 00104 CSLStrEnumProxy<EPropagationType, SI_INHERITED> m_PropagationType; 00105 00106 // reserved for future use 00107 SI_Void *m_pReserved; 00108 }; 00109 00110 #endif