# 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