# GlobalMaterial.h

    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