XSIImageFX2.h

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 #ifndef _XSIIMAGEFX2_H
00016 #define _XSIIMAGEFX2_H
00017 
00018 #include "Template.h"
00019 class CSLImage;
00020 
00028 class XSIEXPORT CSLImageFX2
00029     : public CSLTemplate
00030 {
00031 public:
00033     enum EImageDefinitionType
00034     {
00035         SI_LOAD_IN_MEMORY,  
00036         SI_USE_FROM_DISK,   
00037         SI_BROADCAST,       
00038     };
00039 
00043     enum EOglFilter
00044     {
00045         SI_UNINTERPOLATED_PIXEL = 9728,                         
00046         SI_INTERPOLATED_PIXEL = 9729,                           
00047         SI_UNINTERPOLATED_PIXEL_NEAREST_MIPMAP = 9984,          
00048         SI_INTERPOLATED_PIXEL_NEAREST_MIPMAP = 9985,            
00049         SI_UNINTERPOLATED_PIXEL_INTERPOLATED_MIPMAP = 9986,     
00050         SI_INTERPOLATED_PIXEL_INTERPOLATED_MIPMAP = 9987        
00051     };
00052 
00054     enum EFieldType
00055     {
00056         SI_NONE,    /* None */
00057         SI_ODD,     /* Upper Field First / Odd (PAL and HD Formats) */
00058         SI_EVEN     /* Lower Field First / Even (NTSC and DVFormats) */
00059     };
00060 
00066     CSLImageFX2(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00067 
00069     virtual ~CSLImageFX2();
00070 
00074     ETemplateType Type(){ return XSI_IMAGE_FX2; }
00075 
00076     virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName);
00077 
00078     virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName);
00079 
00080 
00081 
00085     SI_Float GetExposure();
00086 
00090     SI_Void SetExposure( SI_Float in_fValue );
00091 
00095     SI_Float GetDisplayGamma();
00096 
00100     SI_Void SetDisplayGamma( SI_Float in_fValue );
00101 
00105     SI_Bool GetDisplayGammaAffectsRendering();
00106 
00110     SI_Void SetDisplayGammaAffectsRendering( SI_Bool in_bValue );
00111 
00115     SI_Char* GetRenderColorProfile();
00116 
00120     SI_Void SetRenderColorProfile( SI_Char* in_pValue);
00121 
00125     SI_Float GetRenderGamma();
00126 
00130     SI_Void SetRenderGamma( SI_Float in_fValue );
00131 
00135     EImageDefinitionType GetImageDefinitionType();
00136 
00140     SI_Void SetImageDefinitionType( EImageDefinitionType in_Value );
00141 
00145     SI_Bool GetEnableMipMap();
00146 
00150     SI_Void SetEnableMipMap( SI_Bool in_bValue );
00151 
00155     SI_Float GetMipMapScale();
00156 
00160     SI_Void SetMipMapScale( SI_Float in_fValue );
00161 
00165     SI_Int GetOglMaxSize();
00166 
00170     SI_Void SetOglMaxSize( SI_Int in_nValue );
00171 
00175     SI_Bool GetOglMipMap();
00176 
00180     SI_Void SetOglMipMap( SI_Bool in_Value );
00181 
00185     EOglFilter GetOglMinFilter();
00186 
00190     SI_Void SetOglMinFilter( EOglFilter in_Value );
00191 
00195     EOglFilter GetOglMagFilter();
00196 
00200     SI_Void SetOglMagFilter( EOglFilter in_Value );
00201 
00205     EFieldType GetFieldType();
00206 
00210     SI_Void SetFieldType( EFieldType in_Value );
00211 
00215     SI_Int GetSourceTrack();
00216 
00220     SI_Void SetSourceTrack( SI_Int in_bValue );
00221 
00222 
00223     CSLFloatProxy*                                      GetExposureProxy() { return &m_Exposure; };
00224     CSLFloatProxy*                                      GetDisplayGammaProxy() { return &m_DisplayGamma; };
00225     CSLBoolProxy*                                       GetDisplayGammaAffectsRenderingProxy() { return &m_DisplayGammaAffectsRendering; };
00226 
00227     CSLStringProxy*                                     GetRenderColorProfileProxy() { return &m_RenderColorProfile; };
00228     CSLFloatProxy*                                      GetRenderGammaProxy() { return &m_RenderGamma; };
00229 
00230     CSLEnumProxy<EImageDefinitionType, SI_BROADCAST>*   GetImageDefinitionTypeProxy() { return &m_ImageDefinitionType; };
00231     CSLBoolProxy*                                       GetEnableMipMapProxy() { return &m_EnableMipMap; };
00232     CSLFloatProxy*                                      GetMipMapScaleProxy() { return &m_MipMapScale; };
00233 
00234     CSLIntProxy*                                                            GetOglMaxSizeProxy() { return &m_OglMaxSize; };
00235     CSLBoolProxy*                                                           GetOglMipMapProxy() { return &m_OglMipMap; };
00236     CSLEnumProxy<EOglFilter, SI_INTERPOLATED_PIXEL_INTERPOLATED_MIPMAP>*    GetOglMinFilterProxy() { return &m_OglMinFilter; };
00237     CSLEnumProxy<EOglFilter, SI_INTERPOLATED_PIXEL>*                        GetOglMagFilterProxy() { return &m_OglMagFilter; };
00238 
00239     CSLEnumProxy<EFieldType, SI_EVEN>*                  GetFieldTypeProxy() { return &m_FieldType; };
00240     CSLIntProxy*                                        GetSourceTrackProxy() { return &m_SourceTrack; };
00241 
00242 private:
00243     CSLFloatProxy   m_Exposure;
00244     CSLFloatProxy   m_DisplayGamma;
00245     CSLBoolProxy    m_DisplayGammaAffectsRendering;
00246 
00247     CSLStringProxy  m_RenderColorProfile;
00248     CSLFloatProxy   m_RenderGamma;
00249 
00250     CSLEnumProxy<EImageDefinitionType, SI_BROADCAST>    m_ImageDefinitionType;
00251     CSLBoolProxy                                        m_EnableMipMap;
00252     CSLFloatProxy                                       m_MipMapScale;
00253 
00254     CSLIntProxy                                                             m_OglMaxSize;
00255     CSLBoolProxy                                                            m_OglMipMap;
00256     CSLEnumProxy<EOglFilter, SI_INTERPOLATED_PIXEL_INTERPOLATED_MIPMAP>     m_OglMinFilter;
00257     CSLEnumProxy<EOglFilter, SI_INTERPOLATED_PIXEL>                         m_OglMagFilter;
00258 
00259     CSLEnumProxy<EFieldType, SI_EVEN>   m_FieldType;
00260     CSLIntProxy                         m_SourceTrack;
00261 
00262     SI_Void *m_pReserved;
00263 };
00264 
00265 #endif