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