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