00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef _XSIIMAGEFX_H
00016 #define _XSIIMAGEFX_H
00017
00018 #include "Template.h"
00019 class CSLImage;
00020
00028 class XSIEXPORT CSLImageFX
00029 : public CSLTemplate
00030 {
00031 public:
00033 enum EScalingType
00034 {
00035 SI_NONE,
00036 SI_FULL,
00037 SI_HALF,
00038 SI_QUARTER,
00039 SI_128,
00040 SI_256,
00041 SI_512,
00042 SI_CUSTOM,
00043 };
00044
00050 CSLImageFX(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00051
00053 virtual ~CSLImageFX();
00054
00058 ETemplateType Type(){ return XSI_IMAGE_FX; }
00059
00060 virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName);
00061
00062 virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName);
00063
00067 SI_Float GetHue();
00068
00072 SI_Void SetHue( SI_Float in_fValue );
00073
00077 SI_Float GetGain();
00078
00082 SI_Void SetGain( SI_Float in_fValue );
00083
00087 SI_Float GetSaturation();
00088
00092 SI_Void SetSaturation( SI_Float in_fValue );
00093
00097 SI_Float GetBrightness();
00098
00102 SI_Void SetBrightness( SI_Float in_fValue );
00103
00107 SI_Float GetBlurRadius();
00108
00112 SI_Void SetBlurRadius( SI_Float in_fValue );
00113
00117 SI_Float GetBlurAmount();
00118
00122 SI_Void SetBlurAmount( SI_Float in_fValue );
00123
00127 SI_Bool GetBlurAlpha();
00128
00132 SI_Void SetBlurAlpha( SI_Bool in_bValue );
00133
00137 EScalingType GetScalingType();
00138
00142 SI_Void SetScalingType( EScalingType in_Type );
00143
00147 SI_Float GetHorizontalScale();
00148
00152 SI_Void SetHorizontalScale( SI_Float in_fValue );
00153
00157 SI_Float GetVerticalScale();
00158
00162 SI_Void SetVerticalScale( SI_Float in_fValue );
00163
00167 SI_Bool GetFlipHorizontal();
00168
00172 SI_Void SetFlipHorizontal( SI_Bool in_bValue );
00173
00177 SI_Bool GetFlipVertical();
00178
00182 SI_Void SetFlipVertical( SI_Bool in_bValue );
00183
00187 SI_Bool GetRGBA2Greyscale();
00188
00192 SI_Void SetRGBA2Greyscale( SI_Bool in_bValue );
00193
00197 SI_Bool GetConvertTo16Bits();
00198
00202 SI_Void SetConvertTo16Bits( SI_Bool in_bValue );
00203
00204 CSLFloatProxy* GetHueProxy() { return &m_Hue; };
00205 CSLFloatProxy* GetGainProxy() { return &m_Gain; };
00206 CSLFloatProxy* GetSaturationProxy() { return &m_Saturation; };
00207 CSLFloatProxy* GetBrightnessProxy() { return &m_Brightness; };
00208 CSLFloatProxy* GetBlurRadiusProxy() { return &m_BlurRadius; };
00209 CSLFloatProxy* GetBlurAmountProxy() { return &m_BlurAmount; };
00210 CSLBoolProxy* GetBlurAlphaProxy() { return &m_BlurAlpha; };
00211 CSLEnumProxy<EScalingType, SI_CUSTOM>* GetScalingTypeProxy() { return &m_ScalingType; };
00212 CSLFloatProxy* GetScaleXProxy() { return &m_ScaleX; };
00213 CSLFloatProxy* GetScaleYProxy() { return &m_ScaleY; };
00214 CSLBoolProxy* GetFlipHorizontalProxy() { return &m_FlipHorizontal; };
00215 CSLBoolProxy* GetFlipVerticalProxy() { return &m_FlipVertical; };
00216 CSLBoolProxy* GetRGBA2GreyscaleProxy() { return &m_RGBA2Greyscale; };
00217 CSLBoolProxy* GetBitsPerChannelProxy() { return &m_BitsPerChannel; };
00218
00219 private:
00220 CSLFloatProxy m_Hue;
00221 CSLFloatProxy m_Gain;
00222 CSLFloatProxy m_Saturation;
00223 CSLFloatProxy m_Brightness;
00224 CSLFloatProxy m_BlurRadius;
00225 CSLFloatProxy m_BlurAmount;
00226 CSLBoolProxy m_BlurAlpha;
00227 CSLEnumProxy<EScalingType, SI_CUSTOM> m_ScalingType;
00228 CSLFloatProxy m_ScaleX;
00229 CSLFloatProxy m_ScaleY;
00230 CSLBoolProxy m_FlipHorizontal;
00231 CSLBoolProxy m_FlipVertical;
00232 CSLBoolProxy m_RGBA2Greyscale;
00233 CSLBoolProxy m_BitsPerChannel;
00234
00235 SI_Void *m_pReserved;
00236 };
00237
00238 #endif