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 _EXTRAPOLATION_H 00025 #define _EXTRAPOLATION_H 00026 00027 #include "Template.h" 00028 00039 class XSIEXPORT CSLExtrapolation 00040 : public CSLTemplate 00041 { 00042 public: 00043 00046 enum EExtrapolationType 00047 { 00048 SI_NO_CONTRIBUTION, 00049 SI_HOLD, 00050 SI_CYCLE, 00051 SI_BOUNCE, 00052 }; 00053 00060 CSLExtrapolation 00061 ( 00062 CSLScene* in_pScene, 00063 CSLModel* in_pModel, 00064 CdotXSITemplate* in_pTemplate, 00065 EExtrapolationType in_Type = CSLExtrapolation::SI_NO_CONTRIBUTION 00066 ); 00067 00068 virtual ~CSLExtrapolation(); 00069 00073 CSLTemplate::ETemplateType Type(){ return CSLTemplate::XSI_EXTRAPOLATION; } 00074 00078 EExtrapolationType GetExtrapolationType(); 00079 00083 SI_Void SetExtrapolationType( CSLExtrapolation::EExtrapolationType in_Type ); 00084 00091 SI_Float GetValue(); 00092 00098 SI_Void SetValue( SI_Float in_fValue ); 00099 00100 CSLFloatProxy* GetValueProxy() { return &m_Value; }; 00101 00102 private: 00103 CSLStrEnumProxy<EExtrapolationType, SI_BOUNCE> m_ExtrapolationType; 00104 CSLFloatProxy m_Value; 00105 00106 SI_Void* m_pReserved; 00107 }; 00108 00109 #endif