XSIImageFX.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _XSIIMAGEFX_H
00015 #define _XSIIMAGEFX_H
00016 
00017 #include "Template.h"
00018 class CSLImage;
00019 
00026 class XSIEXPORT CSLImageFX
00027     : public CSLTemplate
00028 {
00029 public:
00031     enum EScalingType
00032     {
00033         SI_NONE,    
00034         SI_FULL,    
00035         SI_HALF,    
00036         SI_QUARTER, 
00037         SI_128,     
00038         SI_256,     
00039         SI_512,     
00040         SI_CUSTOM,  
00041     };
00042 
00048     CSLImageFX(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00049 
00051     virtual ~CSLImageFX();
00052 
00056     ETemplateType Type(){ return XSI_IMAGE_FX; }
00057 
00058     virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName);
00059 
00060     virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName);
00061 
00065     SI_Float GetHue();
00066 
00070     SI_Void SetHue( SI_Float in_fValue );
00071 
00075     SI_Float GetGain();
00076 
00080     SI_Void SetGain( SI_Float in_fValue );
00081 
00085     SI_Float GetSaturation();
00086 
00090     SI_Void SetSaturation( SI_Float in_fValue );
00091 
00095     SI_Float GetBrightness();
00096 
00100     SI_Void SetBrightness( SI_Float in_fValue );
00101 
00105     SI_Float GetBlurRadius();
00106 
00110     SI_Void SetBlurRadius( SI_Float in_fValue );
00111 
00115     SI_Float GetBlurAmount();
00116 
00120     SI_Void SetBlurAmount( SI_Float in_fValue );
00121 
00125     SI_Bool GetBlurAlpha();
00126 
00130     SI_Void SetBlurAlpha( SI_Bool in_bValue );
00131 
00135     EScalingType GetScalingType();
00136 
00140     SI_Void SetScalingType( EScalingType in_Type );
00141 
00145     SI_Float GetHorizontalScale();
00146 
00150     SI_Void SetHorizontalScale( SI_Float in_fValue );
00151 
00155     SI_Float GetVerticalScale();
00156 
00160     SI_Void SetVerticalScale( SI_Float in_fValue );
00161 
00165     SI_Bool GetFlipHorizontal();
00166 
00170     SI_Void SetFlipHorizontal( SI_Bool in_bValue );
00171 
00175     SI_Bool GetFlipVertical();
00176 
00180     SI_Void SetFlipVertical( SI_Bool in_bValue );
00181 
00185     SI_Bool GetRGBA2Greyscale();
00186 
00190     SI_Void SetRGBA2Greyscale( SI_Bool in_bValue );
00191 
00195     SI_Bool GetConvertTo16Bits();
00196 
00200     SI_Void SetConvertTo16Bits( SI_Bool in_bValue );
00201 
00202     CSLFloatProxy*                          GetHueProxy() { return &m_Hue; };
00203     CSLFloatProxy*                          GetGainProxy() { return &m_Gain; };
00204     CSLFloatProxy*                          GetSaturationProxy() { return &m_Saturation; };
00205     CSLFloatProxy*                          GetBrightnessProxy() { return &m_Brightness; };
00206     CSLFloatProxy*                          GetBlurRadiusProxy() { return &m_BlurRadius; };
00207     CSLFloatProxy*                          GetBlurAmountProxy() { return &m_BlurAmount; };
00208     CSLBoolProxy*                           GetBlurAlphaProxy() { return &m_BlurAlpha; };
00209     CSLEnumProxy<EScalingType, SI_CUSTOM>*  GetScalingTypeProxy() { return &m_ScalingType; };
00210     CSLFloatProxy*                          GetScaleXProxy() { return &m_ScaleX; };
00211     CSLFloatProxy*                          GetScaleYProxy() { return &m_ScaleY; };
00212     CSLBoolProxy*                           GetFlipHorizontalProxy() { return &m_FlipHorizontal; };
00213     CSLBoolProxy*                           GetFlipVerticalProxy() { return &m_FlipVertical; };
00214     CSLBoolProxy*                           GetRGBA2GreyscaleProxy() { return &m_RGBA2Greyscale; };
00215     CSLBoolProxy*                           GetBitsPerChannelProxy() { return &m_BitsPerChannel; };
00216 
00217 private:
00218     CSLFloatProxy m_Hue;
00219     CSLFloatProxy m_Gain;
00220     CSLFloatProxy m_Saturation;
00221     CSLFloatProxy m_Brightness;
00222     CSLFloatProxy m_BlurRadius;
00223     CSLFloatProxy m_BlurAmount;
00224     CSLBoolProxy m_BlurAlpha;
00225     CSLEnumProxy<EScalingType, SI_CUSTOM> m_ScalingType;
00226     CSLFloatProxy m_ScaleX;
00227     CSLFloatProxy m_ScaleY;
00228     CSLBoolProxy m_FlipHorizontal;
00229     CSLBoolProxy m_FlipVertical;
00230     CSLBoolProxy m_RGBA2Greyscale;
00231     CSLBoolProxy m_BitsPerChannel;
00232 
00233     SI_Void *m_pReserved;
00234 };
00235 
00236 #endif