00001 //*************************************************************************************** 00002 // 00003 // File supervisor: Crosswalk team 00004 // 00005 // Copyright 2008 Autodesk, Inc. All rights reserved. 00006 // Use of this software is subject to the terms of the Autodesk license agreement 00007 // provided at the time of installation or download, or which otherwise accompanies 00008 // this software in either electronic or hard copy form. 00009 // 00010 //*************************************************************************************** 00011 00012 #ifndef _EXTRAPOLATION_H 00013 #define _EXTRAPOLATION_H 00014 00015 #include "Template.h" 00016 00027 class XSIEXPORT CSLExtrapolation 00028 : public CSLTemplate 00029 { 00030 public: 00031 00034 enum EExtrapolationType 00035 { 00036 SI_NO_CONTRIBUTION, 00037 SI_HOLD, 00038 SI_CYCLE, 00039 SI_BOUNCE, 00040 }; 00041 00048 CSLExtrapolation 00049 ( 00050 CSLScene* in_pScene, 00051 CSLModel* in_pModel, 00052 CdotXSITemplate* in_pTemplate, 00053 EExtrapolationType in_Type = CSLExtrapolation::SI_NO_CONTRIBUTION 00054 ); 00055 00056 virtual ~CSLExtrapolation(); 00057 00061 CSLTemplate::ETemplateType Type(){ return CSLTemplate::XSI_EXTRAPOLATION; } 00062 00066 EExtrapolationType GetExtrapolationType(); 00067 00071 SI_Void SetExtrapolationType( CSLExtrapolation::EExtrapolationType in_Type ); 00072 00079 SI_Float GetValue(); 00080 00086 SI_Void SetValue( SI_Float in_fValue ); 00087 00088 CSLFloatProxy* GetValueProxy() { return &m_Value; }; 00089 00090 private: 00091 CSLStrEnumProxy<EExtrapolationType, SI_BOUNCE> m_ExtrapolationType; 00092 CSLFloatProxy m_Value; 00093 00094 SI_Void* m_pReserved; 00095 }; 00096 00097 #endif