LightInfo.h

00001 //***************************************************************************************
00002 //
00003 // File supervisor: Softimage 3D Games & 3D Bridge team
00004 //
00005 // (c) Copyright 2001-2002 Avid Technology, Inc. . All rights reserved.
00006 //
00007 //***************************************************************************************
00008 
00009 /****************************************************************************************
00010 THIS CODE IS PUBLISHED AS A SAMPLE ONLY AND IS PROVIDED "AS IS".
00011 IN NO EVENT SHALL SOFTIMAGE, AVID TECHNOLOGY, INC. AND/OR THEIR RESPECTIVE
00012 SUPPLIERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
00013 DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
00014 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
00015 CONNECTION WITH THE USE OR PERFORMANCE OF THIS CODE .
00016 
00017 COPYRIGHT NOTICE. Copyright © 1999-2002 Avid Technology Inc. . All rights reserved. 
00018  
00019 SOFTIMAGE is a registered trademark of Avid Technology Inc. or its subsidiaries 
00020 or divisions. Windows NT is a registered trademark of Microsoft Corp. All other
00021 trademarks contained herein are the property of their respective owners. 
00022 ****************************************************************************************/
00023 #ifndef _LIGHTINFO_H
00024 #define _LIGHTINFO_H
00025 
00026 #include "Template.h"
00027 
00029 class XSIEXPORT CSLLightInfo
00030     : public CSLTemplate
00031 {
00032 public:
00033 
00035     enum EFallofMode
00036     {
00037         SI_LINEAR,      
00038         SI_EXPONENT,    
00039     };
00046     CSLLightInfo(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00047 
00051     virtual ~CSLLightInfo();
00052 
00056     ETemplateType Type(){ return SI_LIGHT_INFO; }
00057 
00058     virtual CSLAnimatableType*      ParameterFromName(SI_Char *in_szName);
00059 
00060     virtual CSLAnimatableType*      ParameterFromType(EFCurveType in_Type, SI_Char *in_szName);
00061 
00065     SI_Bool GetFallofActive();
00066 
00071     SI_Void SetFallofActive( SI_Bool in_bActive );
00072 
00076     EFallofMode GetFallofMode();
00077 
00082     SI_Void SetFallofMode( EFallofMode in_Mode );
00083 
00087     SI_Float GetStart();
00088     
00092     SI_Void SetStart( SI_Float in_fStart);
00093 
00097     SI_Float GetEnd();
00098 
00102     SI_Void SetEnd( SI_Float in_fEnd);
00103 
00107     SI_Bool GetShadowActive();
00108 
00113     SI_Void SetShadowActive( SI_Bool in_bActive );
00114 
00118     SI_Float GetUmbra();
00119 
00123     SI_Void SetUmbra( SI_Float in_fUmbra = 0.75F);
00124 
00129     SI_Bool GetLightAsEnergy();
00130 
00135     SI_Void SetLightAsEnergy( SI_Bool in_bActive );
00136 
00140     SI_Float GetPhotonFactor();
00141 
00147     SI_Void SetPhotonFactor( SI_Float in_fPhotonFactor = 0.75F);
00148 
00152     SI_Float GetIntensity();
00158     SI_Void SetIntensity( SI_Float in_fIntensity );
00159 
00160     CSLBoolProxy*                           GetFallofActiveProxy() {return &m_FallofActive; };
00161     CSLEnumProxy<EFallofMode, SI_EXPONENT>* GetFallofModeProxy() {return &m_FallofMode; };
00162     CSLFloatProxy*                          GetStartProxy() {return &m_Start; };
00163     CSLFloatProxy*                          GetEndProxy() {return &m_End; };
00164     CSLBoolProxy*                           GetShadowsActiveProxy() {return &m_ShadowsActive; };
00165     CSLFloatProxy*                          GetUmbraProxy() {return &m_Umbra; };
00166     CSLBoolProxy*                           GetLightAsEnergyProxy() {return &m_LightAsEnergy; };
00167     CSLFloatProxy*                          GetPhotonFactorProxy() {return &m_PhotonFactor; };
00168     CSLFloatProxy*                          GetIntensityProxy() {return &m_Intensity; };
00169 
00170 private:
00171     CSLBoolProxy m_FallofActive;
00172     CSLEnumProxy<EFallofMode, SI_EXPONENT> m_FallofMode;
00173     CSLFloatProxy m_Start;
00174     CSLFloatProxy m_End;
00175     CSLBoolProxy m_ShadowsActive;
00176     CSLFloatProxy m_Umbra;
00177     CSLBoolProxy m_LightAsEnergy;
00178     CSLFloatProxy m_PhotonFactor;
00179     CSLFloatProxy m_Intensity;
00180 
00181     SI_Void* m_pReserved;
00182 };
00183 
00184 #endif