Extrapolation.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _EXTRAPOLATION_H
00015 #define _EXTRAPOLATION_H
00016 
00017 #include "Template.h"
00018 
00029 class XSIEXPORT CSLExtrapolation
00030     : public CSLTemplate
00031 {
00032 public:
00033 
00036     enum EExtrapolationType
00037     {
00038         SI_NO_CONTRIBUTION,     
00039         SI_HOLD,                
00040         SI_CYCLE,               
00041         SI_BOUNCE,              
00042     };
00043 
00050     CSLExtrapolation
00051     (
00052         CSLScene* in_pScene,
00053         CSLModel* in_pModel,
00054         CdotXSITemplate* in_pTemplate,
00055         EExtrapolationType in_Type = CSLExtrapolation::SI_NO_CONTRIBUTION
00056     );
00057 
00058     virtual ~CSLExtrapolation();
00059 
00063     CSLTemplate::ETemplateType Type(){ return CSLTemplate::XSI_EXTRAPOLATION; }
00064 
00068     EExtrapolationType GetExtrapolationType();
00069 
00073     SI_Void SetExtrapolationType( CSLExtrapolation::EExtrapolationType in_Type );
00074 
00081     SI_Float GetValue();
00082 
00088     SI_Void SetValue( SI_Float in_fValue );
00089 
00090     CSLFloatProxy*  GetValueProxy() { return &m_Value; };
00091 
00092 private:
00093     CSLStrEnumProxy<EExtrapolationType, SI_BOUNCE> m_ExtrapolationType;
00094     CSLFloatProxy m_Value;
00095 
00096     SI_Void* m_pReserved;
00097 };
00098 
00099 #endif