XSITextureLayer.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 #ifndef _XSITEXTURELAYER_H
00014 #define _XSITEXTURELAYER_H
00015 
00016 #include "Template.h"
00017 
00018 class CSLXSITextureLayerPort;
00019 class CSLXSIShaderMultiPortConnection;
00020 
00021 
00027 class XSIEXPORT CSLXSITextureLayer
00028     : public CSLTemplate
00029 {
00030 public:
00036     CSLXSITextureLayer(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00037 
00039     virtual ~CSLXSITextureLayer();
00040 
00044     SI_Error Synchronize();
00045 
00049     ETemplateType Type(){ return XSI_TEXTURE_LAYER; }
00050 
00051     virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName);
00052 
00053     virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName);
00054 
00058     SI_Int GetOrder();
00059 
00063     SI_Void SetOrder( SI_Int in_nValue );
00064 
00068     SI_Bool GetMute();
00069 
00073     SI_Void SetMute( SI_Bool in_bValue );
00074 
00078     SI_Bool GetSolo();
00079 
00083     SI_Void SetSolo( SI_Bool in_bValue );
00084 
00088     SI_Char* GetColorConnection();
00089 
00093     SI_Void SetColorConnection( SI_Char* in_pValue );
00094 
00098     SI_Float GetRed();
00099 
00103     SI_Void SetRed( SI_Float in_fValue );
00104 
00108     SI_Float GetGreen();
00109 
00113     SI_Void SetGreen( SI_Float in_fValue );
00114 
00118     SI_Float GetBlue();
00119 
00123     SI_Void SetBlue( SI_Float in_fValue );
00124 
00128     SI_Float GetAlpha();
00129 
00133     SI_Void SetAlpha( SI_Float in_fValue );
00134 
00138     SI_Bool GetColorPremultiplied();
00139 
00143     SI_Void SetColorPremultiplied( SI_Bool in_bValue );
00144 
00148     SI_Bool GetIgnoreColorAlpha();
00149 
00153     SI_Void SetIgnoreColorAlpha( SI_Bool in_bValue );
00154 
00158     SI_Bool GetInvertColorAlpha();
00159 
00163     SI_Void SetInvertColorAlpha( SI_Bool in_bValue );
00164 
00168     SI_Bool GetAlphaColor();
00169 
00173     SI_Void SetAlphaColor( SI_Bool in_bValue );
00174 
00178     SI_Char* GetMaskConnection();
00179 
00183     SI_Void SetMaskConnection( SI_Char* in_pValue );
00184 
00188     SI_Float GetMask();
00189 
00193     SI_Void SetMask( SI_Float in_fValue );
00194 
00198     SI_Bool GetInvertMask();
00199 
00203     SI_Void SetInvertMask( SI_Bool in_bValue );
00204 
00208     SI_Int GetMaskMode();
00209 
00213     SI_Void SetMaskMode( SI_Int in_nValue );
00214 
00218     SI_Float GetMaskThreshold();
00219 
00223     SI_Void SetMaskThreshold( SI_Float in_nValue );
00224 
00228     SI_Float GetWeight();
00229 
00233     SI_Void SetWeight( SI_Float in_fValue );
00234 
00238     SI_Int GetMode();
00239 
00243     SI_Void SetMode( SI_Int in_nValue );
00244 
00245     CSLIntProxy*    GetOrderProxy() { return &m_Order; };
00246     CSLBoolProxy*   GetMuteProxy() { return &m_Mute; };
00247     CSLBoolProxy*   GetSoloProxy() { return &m_Solo; };
00248     CSLStringProxy* GetColorConnectionProxy() { return &m_ColorConnection; };
00249     CSLFloatProxy*  GetRedProxy() { return &m_Red; };
00250     CSLFloatProxy*  GetGreenProxy() { return &m_Green; };
00251     CSLFloatProxy*  GetBlueProxy() { return &m_Blue; };
00252     CSLFloatProxy*  GetAlphaProxy() { return &m_Alpha; };
00253     CSLBoolProxy*   GetColorPremultipliedProxy() { return &m_ColorPremultiplied; };
00254     CSLBoolProxy*   GetIgnoreColorAlphaProxy() { return &m_IgnoreColorAlpha; };
00255     CSLBoolProxy*   GetInvertColorAlphaProxy() { return &m_InvertColorAlpha; };
00256     CSLBoolProxy*   GetAlphaColorProxy() { return &m_AlphaColor; };
00257     CSLStringProxy* GetMaskConnectionProxy() { return &m_MaskConnection; };
00258     CSLFloatProxy*  GetMaskProxy() { return &m_Mask; };
00259     CSLBoolProxy*   GetInvertMaskProxy() { return &m_InvertMask; };
00260     CSLIntProxy*    GetMaskModeProxy() { return &m_MaskMode; };
00261     CSLFloatProxy*  GetMaskThresholdProxy() { return &m_MaskThreshold; };
00262     CSLFloatProxy*  GetWeightProxy() { return &m_Weight; };
00263     CSLIntProxy*    GetModeProxy() { return &m_Mode; };
00264 
00266     // Texture Layer port functionality ////////////////////////////////////////
00268 
00272     CSLXSITextureLayerPort* AddTextureLayerPort();
00273 
00277     SI_Error RemoveTextureLayerPort(SI_Int in_nIndex);
00278 
00282     SI_Error RemoveTextureLayerPort(CSLXSITextureLayerPort* in_pToRemove);
00283 
00288     CSLXSITextureLayerPort* GetTextureLayerPort(SI_Int in_nIndex);
00289 
00293     SI_Int GetTextureLayerPortCount();
00294 
00297     SI_Error ClearTextureLayerPorts();
00298 
00302     CSLXSITextureLayerPort** GetTextureLayerPortList();
00303 
00308     CSLXSITextureLayerPort* ConnectTextureLayerPort( CSLXSITextureLayerPort* in_pToConnect );
00309 
00311     // Multi Port Connection functionality ////////////////////////////////
00313 
00317     CSLXSIShaderMultiPortConnection* AddMultiPortConnection();
00318 
00322     SI_Error RemoveMultiPortConnection(SI_Int in_nIndex);
00323 
00327     SI_Error RemoveMultiPortConnection(CSLXSIShaderMultiPortConnection* in_pToRemove);
00328 
00333     CSLXSIShaderMultiPortConnection* GetMultiPortConnection(SI_Int in_nIndex);
00334 
00338     SI_Int GetMultiPortConnectionCount();
00339 
00342     SI_Error ClearMultiPortConnections();
00343 
00347     CSLXSIShaderMultiPortConnection** GetMultiPortConnectionList();
00348 
00353     CSLXSIShaderMultiPortConnection* ConnectMultiPortConnection( CSLXSIShaderMultiPortConnection* in_pToConnect );
00354 
00359     CSLXSIShaderMultiPortConnection* FindMultiPortConnectionByParameterName(SI_Char *in_pName);
00360 
00361 private:
00362     CSLIntProxy     m_Order;
00363     CSLBoolProxy    m_Mute;
00364     CSLBoolProxy    m_Solo;
00365     CSLStringProxy  m_ColorConnection;
00366     CSLFloatProxy   m_Red;
00367     CSLFloatProxy   m_Green;
00368     CSLFloatProxy   m_Blue;
00369     CSLFloatProxy   m_Alpha;
00370     CSLBoolProxy    m_ColorPremultiplied;
00371     CSLBoolProxy    m_IgnoreColorAlpha;
00372     CSLBoolProxy    m_InvertColorAlpha;
00373     CSLBoolProxy    m_AlphaColor;
00374     CSLStringProxy  m_MaskConnection;
00375     CSLFloatProxy   m_Mask;
00376     CSLBoolProxy    m_InvertMask;
00377     CSLIntProxy     m_MaskMode;
00378     CSLFloatProxy   m_MaskThreshold;
00379     CSLFloatProxy   m_Weight;
00380     CSLIntProxy     m_Mode;
00381 
00382     CSIBCArray<CSLXSITextureLayerPort*> m_TextureLayerPorts;
00383 
00384     CSIBCArray<CSLXSIShaderMultiPortConnection *> m_MultiPortConnections;
00385 
00386     SI_Void *m_pReserved;
00387 };
00388 
00389 #endif