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 00024 #ifndef _FOG_H 00025 #define _FOG_H 00026 00027 #include "Template.h" 00028 00030 class XSIEXPORT CSLFog 00031 : public CSLTemplate 00032 { 00033 public: 00037 enum EFogType 00038 { 00039 SI_VERTEX, 00040 SI_PIXEL, 00041 }; 00042 00046 enum EFogInterpolationType 00047 { 00048 SI_LINEAR, 00049 SI_EXPONENTIAL, 00050 }; 00051 00058 CSLFog(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate); 00059 00062 virtual ~CSLFog(); 00063 00067 EFogType GetFogType() { return m_Type; } 00068 00073 SI_Void SetFogType(EFogType in_Type) { m_Type = in_Type; } 00074 00078 EFogInterpolationType GetFogInterpolationType() { return m_InterpolationType; } 00079 00084 SI_Void SetFogInterpolationType(EFogInterpolationType in_Type) { m_InterpolationType = in_Type; } 00085 00089 CSIBCColorf GetColor() { return m_Color; } 00090 00095 SI_Void SetColor(CSIBCColorf& in_rColor) { m_Color = in_rColor; } 00096 00100 SI_Float GetNear() { return m_Near; } 00101 00106 SI_Void SetNear(SI_Float in_fValue) { m_Near = in_fValue; } 00107 00111 SI_Float GetFar() { return m_Far; } 00112 00117 SI_Void SetFar(SI_Float in_fValue) { m_Far = in_fValue; } 00118 00123 virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName); 00124 00130 virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName); 00131 00135 virtual ETemplateType Type() { return SI_FOG; } 00136 00137 CSLColorRGBProxy* GetColorProxy(){ return &m_Color; }; 00138 CSLFloatProxy* GetNearProxy(){ return &m_Near; }; 00139 CSLFloatProxy* GetFarProxy(){ return &m_Far; }; 00140 00141 private: 00142 CSLEnumProxy<EFogType, SI_FOG> m_Type; 00143 CSLEnumProxy<EFogInterpolationType, SI_EXPONENTIAL> m_InterpolationType; 00144 00145 CSLColorRGBProxy m_Color; 00146 CSLFloatProxy m_Near; 00147 CSLFloatProxy m_Far; 00148 }; 00149 00150 #endif