Extrapolation.h

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