00001
00002
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