XSIImage.h



Your Ad Here

00001 /****************************************************************************************
00002 THIS CODE IS PUBLISHED AS A SAMPLE ONLY AND IS PROVIDED "AS IS".
00003 IN NO EVENT SHALL SOFTIMAGE, AVID TECHNOLOGY, INC. AND/OR THEIR RESPECTIVE 
00004 SUPPLIERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
00005 DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
00006 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
00007 CONNECTION WITH THE USE OR PERFORMANCE OF THIS CODE . 
00008  
00009 COPYRIGHT NOTICE. Copyright © 1999-2002 Avid Technology Inc. . All rights reserved. 
00010 
00011 SOFTIMAGE is a registered trademark of Avid Technology Inc. or its subsidiaries 
00012 or divisions. Windows NT is a registered trademark of Microsoft Corp. All other
00013 trademarks contained herein are the property of their respective owners. 
00014 ****************************************************************************************/
00015 
00016 #ifndef _XSIIMAGE_H
00017 #define _XSIIMAGE_H
00018 
00019 #include "Template.h"
00020 
00021 class CSLImageData;
00022 class CSLImageFX;
00023 class CSLImageLibrary;
00024 class CSLTimeControl;
00025 
00033 class XSIEXPORT CSLImage
00034     : public CSLTemplate
00035 {
00036 public:
00038     enum EChannels
00039     {
00040         SI_RGB = 3,     
00041         SI_RGBA = 4     
00042     };
00043 
00045     enum EColorDepth
00046     {
00047         SI_24BITS = 24, 
00048         SI_32BITS = 32  
00049     };
00050 
00056     CSLImage(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00057 
00059     virtual ~CSLImage();
00060 
00064     SI_Error Synchronize();
00065 
00069     ETemplateType Type(){ return XSI_IMAGE; }
00070 
00071     virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName);
00072 
00073     virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName);
00074 
00078     SI_Char* GetSourceFile();
00079 
00083     SI_Void SetSourceFile( SI_Char* in_szFilename );
00084 
00089     SI_Int GetWidth();
00090 
00094     SI_Void SetWidth( SI_Int in_nSize );
00095 
00099     SI_Int GetHeight();
00100 
00104     SI_Void SetHeight( SI_Int in_nSize );
00105 
00109     EChannels GetChannels();
00110 
00114     SI_Void SetChannels( EChannels in_Channel );
00115 
00119     EColorDepth GetColorDepth();
00120 
00124     SI_Void SetColorDepth( EColorDepth in_Depth );
00125 
00129     SI_Float GetCropMinX();
00130 
00134     SI_Void SetCropMinX( SI_Float in_fCrop );
00135 
00139     SI_Float GetCropMaxX();
00140 
00144     SI_Void SetCropMaxX( SI_Float in_fCrop );
00145 
00149     SI_Float GetCropMinY();
00150 
00154     SI_Void SetCropMinY( SI_Float in_fCrop );
00155 
00159     SI_Float GetCropMaxY();
00160 
00164     SI_Void SetCropMaxY( SI_Float in_fCrop );
00165 
00170     SI_Float GetFrameRate();
00171 
00176     SI_Void SetFrameRate( SI_Float in_nRate = 0.0 );
00177 
00181     SI_Int GetFirstFrame();
00182 
00186     SI_Void SetFirstFrame( SI_Int in_nFrame );
00187 
00191     SI_Int GetLastFrame();
00192 
00196     SI_Void SetLastFrame( SI_Int in_nFrame );
00197 
00199     // Image data functionality ///////////////////////////////////////////////
00201 
00205     CSLImageData* CreateImageData();
00206 
00216     SI_Error DestroyImageData();
00217 
00222     CSLImageData* ConnectImageData( CSLImageData* in_pImageData );
00223 
00228     CSLImageData* ImageData();
00229     
00230     CSLTimeControl* TimeControl();
00231     CSLTimeControl* AddTimeControl();
00232     CSLTimeControl* ConnectTimeControl(CSLTimeControl* in_pNewTimeControl);
00233 
00235     // Image FX Functionality /////////////////////////////////////////////////
00237 
00241     CSLImageFX* CreateImageFX();
00242 
00246     SI_Error DestroyImageFX();
00247 
00252     CSLImageFX* ConnectImageFX( CSLImageFX* in_pToConnect );
00253 
00257     CSLImageFX* ImageFX();
00258 
00259     CSLStringProxy* SourceFile() { return &m_SourceFile;};
00260 
00261     CSLIntProxy * SizeX() { return &m_SizeX;};
00262     CSLIntProxy * SizeY() { return &m_SizeY;};
00263     CSLIntProxy * Channels() { return &m_Channels;};
00264     CSLFloatProxy * CropMinX() { return &m_CropMinX;};
00265     CSLFloatProxy * CropMaxX() { return &m_CropMaxX;};
00266     CSLFloatProxy * CropMinY() { return &m_CropMinY;};
00267     CSLFloatProxy * CropMaxY() { return &m_CropMaxY;};
00268     CSLFloatProxy * FrameRate() { return &m_FrameRate;};
00269     CSLIntProxy * FrameCount() { return &m_FrameCount;};
00270     CSLIntProxy * FirstFrame() { return &m_FirstFrame;};
00271     CSLIntProxy * LastFrame() { return &m_LastFrame;};
00272     CSLIntProxy * BitsPerPixel() { return &m_BitsPerPixel;};
00273 
00274     
00275 private:
00276     CSLStringProxy m_SourceFile;
00277     CSLIntProxy m_SizeX;
00278     CSLIntProxy m_SizeY;
00279     CSLIntProxy m_Channels;
00280     CSLIntProxy m_BitsPerPixel;
00281     CSLFloatProxy m_CropMinX;
00282     CSLFloatProxy m_CropMaxX;
00283     CSLFloatProxy m_CropMinY;
00284     CSLFloatProxy m_CropMaxY;
00285     CSLFloatProxy m_FrameRate;
00286     CSLIntProxy m_FrameCount;
00287     CSLIntProxy m_FirstFrame;
00288     CSLIntProxy m_LastFrame;
00289     CSLImageData *m_pImageData;
00290     CSLImageFX *m_pImageFX;
00291     CSLTimeControl* m_pTimeControl;
00292 
00293     SI_Void *m_pReserved;
00294 };
00295 
00296 #endif

Return to Softimage XSI Index


Your Ad Here