XSIShaderCompoundPort.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 _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