XSIImage.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _XSIIMAGE_H
00015 #define _XSIIMAGE_H
00016 
00017 #include "Template.h"
00018 
00019 class CSLImageData;
00020 class CSLImageFX;
00021 class CSLImageFX2;
00022 class CSLImageLibrary;
00023 class CSLTimeControl;
00024 
00031 class XSIEXPORT CSLImage
00032     : public CSLTemplate
00033 {
00034 public:
00036     enum EChannels
00037     {
00038         SI_RGB = 3,     
00039         SI_RGBA = 4     
00040     };
00041 
00043     enum EColorDepth
00044     {
00045         SI_24BITS = 24, 
00046         SI_32BITS = 32  
00047     };
00048 
00054     CSLImage(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00055 
00057     virtual ~CSLImage();
00058 
00062     SI_Error Synchronize();
00063 
00067     ETemplateType Type(){ return XSI_IMAGE; }
00068 
00069     virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName);
00070 
00071     virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName);
00072 
00076     SI_Char* GetSourceFile();
00077 
00081     SI_Void SetSourceFile( SI_Char* in_szFilename );
00082 
00087     SI_Int GetWidth();
00088 
00092     SI_Void SetWidth( SI_Int in_nSize );
00093 
00097     SI_Int GetHeight();
00098 
00102     SI_Void SetHeight( SI_Int in_nSize );
00103 
00107     EChannels GetChannels();
00108 
00112     SI_Void SetChannels( EChannels in_Channel );
00113 
00117     EColorDepth GetColorDepth();
00118 
00122     SI_Void SetColorDepth( EColorDepth in_Depth );
00123 
00127     SI_Float GetCropMinX();
00128 
00132     SI_Void SetCropMinX( SI_Float in_fCrop );
00133 
00137     SI_Float GetCropMaxX();
00138 
00142     SI_Void SetCropMaxX( SI_Float in_fCrop );
00143 
00147     SI_Float GetCropMinY();
00148 
00152     SI_Void SetCropMinY( SI_Float in_fCrop );
00153 
00157     SI_Float GetCropMaxY();
00158 
00162     SI_Void SetCropMaxY( SI_Float in_fCrop );
00163 
00168     SI_Float GetFrameRate();
00169 
00174     SI_Void SetFrameRate( SI_Float in_nRate = 0.0 );
00175 
00179     SI_Int GetFirstFrame();
00180 
00184     SI_Void SetFirstFrame( SI_Int in_nFrame );
00185 
00189     SI_Int GetLastFrame();
00190 
00194     SI_Void SetLastFrame( SI_Int in_nFrame );
00195 
00197     // Image data functionality ///////////////////////////////////////////////
00199 
00203     CSLImageData* CreateImageData();
00204 
00215     SI_Error DestroyImageData();
00216 
00222     CSLImageData* ConnectImageData( CSLImageData* in_pImageData );
00223 
00229     CSLImageData* ImageData();
00230 
00231     CSLTimeControl* TimeControl();
00232     CSLTimeControl* AddTimeControl();
00233     CSLTimeControl* ConnectTimeControl(CSLTimeControl* in_pNewTimeControl);
00234 
00236     // Image FX Functionality /////////////////////////////////////////////////
00238 
00242     CSLImageFX* CreateImageFX();
00243 
00247     SI_Error DestroyImageFX();
00248 
00253     CSLImageFX* ConnectImageFX( CSLImageFX* in_pToConnect );
00254 
00258     CSLImageFX* ImageFX();
00259 
00260     CSLStringProxy* SourceFile() { return &m_SourceFile;};
00261 
00262     CSLIntProxy * SizeX() { return &m_SizeX;};
00263     CSLIntProxy * SizeY() { return &m_SizeY;};
00264     CSLIntProxy * Channels() { return &m_Channels;};
00265     CSLFloatProxy * CropMinX() { return &m_CropMinX;};
00266     CSLFloatProxy * CropMaxX() { return &m_CropMaxX;};
00267     CSLFloatProxy * CropMinY() { return &m_CropMinY;};
00268     CSLFloatProxy * CropMaxY() { return &m_CropMaxY;};
00269     CSLFloatProxy * FrameRate() { return &m_FrameRate;};
00270     CSLIntProxy * FrameCount() { return &m_FrameCount;};
00271     CSLIntProxy * FirstFrame() { return &m_FirstFrame;};
00272     CSLIntProxy * LastFrame() { return &m_LastFrame;};
00273     CSLIntProxy * BitsPerPixel() { return &m_BitsPerPixel;};
00274 
00276     // Image FX 2 Functionality /////////////////////////////////////////////////
00278 
00282     CSLImageFX2* CreateImageFX2();
00283 
00287     SI_Error DestroyImageFX2();
00288 
00293     CSLImageFX2* ConnectImageFX2( CSLImageFX2* in_pToConnect );
00294 
00298     CSLImageFX2* ImageFX2();
00299 
00300 private:
00301     CSLStringProxy m_SourceFile;
00302     CSLIntProxy m_SizeX;
00303     CSLIntProxy m_SizeY;
00304     CSLIntProxy m_Channels;
00305     CSLIntProxy m_BitsPerPixel;
00306     CSLFloatProxy m_CropMinX;
00307     CSLFloatProxy m_CropMaxX;
00308     CSLFloatProxy m_CropMinY;
00309     CSLFloatProxy m_CropMaxY;
00310     CSLFloatProxy m_FrameRate;
00311     CSLIntProxy m_FrameCount;
00312     CSLIntProxy m_FirstFrame;
00313     CSLIntProxy m_LastFrame;
00314     CSLImageData *m_pImageData;
00315     CSLImageFX *m_pImageFX;
00316     CSLImageFX2 *m_pImageFX2;
00317     CSLTimeControl* m_pTimeControl;
00318 
00319     SI_Void *m_pReserved;
00320 };
00321 
00322 #endif