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 _XSISHADERCOMPOUNDPORT_H 00013 #define _XSISHADERCOMPOUNDPORT_H 00014 00015 #include "Template.h" 00016 00017 class CSLXSIShader; 00018 00022 class XSIEXPORT CSLXSIShaderCompoundPort 00023 : public CSLTemplate 00024 { 00025 public: 00027 enum EPortType 00028 { 00029 SI_INPUT_PORT, 00030 SI_OUTPUT_PORT, 00031 }; 00032 00038 CSLXSIShaderCompoundPort(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate); 00039 00041 virtual ~CSLXSIShaderCompoundPort(); 00042 00046 SI_Error Synchronize(); 00047 00051 ETemplateType Type(){ return XSI_SHADER_COMPOUND_PORT; } 00052 00056 EPortType GetPortType(); 00057 00061 SI_Void SetPortType( EPortType in_eValue ); 00062 00066 SI_Char* GetDisplayName(); 00067 00071 SI_Void SetDisplayName( SI_Char* in_pValue ); 00072 00076 SI_Char* GetPPGMinValue(); 00077 00081 SI_Void SetPPGMinValue( SI_Char* in_pValue ); 00082 00086 SI_Char* GetPPGMaxValue(); 00087 00091 SI_Void SetPPGMaxValue( SI_Char* in_pValue ); 00092 00096 SI_Char* GetPPGEnumValues(); 00097 00101 SI_Void SetPPGEnumValues( SI_Char* in_pValue ); 00102 00106 SI_Bool GetPPGLayoutVisible(); 00107 00111 SI_Void SetPPGLayoutVisible ( SI_Bool in_nValue ); 00112 00116 SI_Char* GetPPGLayoutGroup(); 00117 00121 SI_Void SetPPGLayoutGroup( SI_Char* in_pValue ); 00122 00126 SI_Char* GetPPGLayoutTab(); 00127 00131 SI_Void SetPPGLayoutTab( SI_Char* in_pValue ); 00132 00136 SI_Bool GetRTLayoutVisible(); 00137 00141 SI_Void SetRTLayoutVisible( SI_Bool in_pValue ); 00142 00146 SI_Char* GetRTLayoutGroup (); 00147 00151 SI_Void SetRTLayoutGroup ( SI_Char* in_pValue ); 00152 00156 CSLXSIShader* GetSourceShader (); 00157 00161 SI_Void SetSourceShader ( CSLXSIShader* in_pSourceShader ); 00162 00163 CSLEnumProxy<EPortType, SI_OUTPUT_PORT>* GetPortTypeProxy() { return &m_PortType; }; 00164 CSLStringProxy* GetDisplayNameProxy() { return &m_DisplayName; }; 00165 CSLStringProxy* GetPPGMinValueProxy() { return &m_PPGMinValue; }; 00166 CSLStringProxy* GetPPGMaxValueProxy() { return &m_PPGMaxValue; }; 00167 CSLStringProxy* GetPPGEnumValuesProxy() { return &m_PPGEnumValues; }; 00168 CSLBoolProxy* GetPPGLayoutVisibleProxy() { return &m_PPGLayoutVisible; }; 00169 CSLStringProxy* GetPPGLayoutGroupProxy() { return &m_PPGLayoutGroup; }; 00170 CSLStringProxy* GetPPGLayoutTabProxy() { return &m_PPGLayoutTab; }; 00171 CSLBoolProxy* GetRTLayoutVisibleProxy() { return &m_RTLayoutVisible; }; 00172 CSLStringProxy* GetRTLayoutGroupProxy() { return &m_RTLayoutGroup; }; 00173 00174 private: 00175 CSLEnumProxy<EPortType, SI_OUTPUT_PORT> m_PortType; 00176 CSLStringProxy m_DisplayName; 00177 CSLStringProxy m_PPGMinValue; 00178 CSLStringProxy m_PPGMaxValue; 00179 CSLStringProxy m_PPGEnumValues; 00180 CSLBoolProxy m_PPGLayoutVisible; 00181 CSLStringProxy m_PPGLayoutGroup; 00182 CSLStringProxy m_PPGLayoutTab; 00183 CSLBoolProxy m_RTLayoutVisible; 00184 CSLStringProxy m_RTLayoutGroup; 00185 CSLXSIShader* m_pSourceShader; 00186 00187 SI_Void *m_pReserved; 00188 }; 00189 00190 #endif