00001 //*************************************************************************************** 00002 // File supervisor: Crosswalk team 00012 //*************************************************************************************** 00013 00014 #ifndef _TIMECONTROL_H 00015 #define _TIMECONTROL_H 00016 00017 #include "Template.h" 00018 #include "Extrapolation.h" 00019 #include "XSIClipToParent.h" 00020 00030 class XSIEXPORT CSLTimeControl 00031 : public CSLTemplate 00032 { 00033 public: 00034 00036 enum EExtrapolationPos 00037 { 00038 SI_BEFORE, 00039 SI_AFTER 00040 }; 00041 00047 CSLTimeControl(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate); 00048 virtual ~CSLTimeControl(); 00049 00053 CSLTemplate::ETemplateType Type(){ return CSLTemplate::XSI_TIMECONTROL; } 00054 SI_Error Synchronize(); 00055 00059 SI_Float GetIn(); 00060 00064 SI_Void SetIn( SI_Float in_fNew ); 00065 00069 SI_Float GetOut(); 00070 00074 SI_Void SetOut( SI_Float in_fNew ); 00075 00079 SI_Float GetScale(); 00080 00085 SI_Void SetScale( SI_Float in_fNew ); 00086 00090 SI_Float GetStartOffset(); 00091 00095 SI_Void SetStartOffset( SI_Float in_fNew ); 00096 00097 // extrapolation functionality //////////////////////////////////////////// 00098 00105 CSLExtrapolation* CreateExtrapolation( EExtrapolationPos in_Pos, CSLExtrapolation::EExtrapolationType in_Type = CSLExtrapolation::SI_NO_CONTRIBUTION ); 00106 00112 CSLExtrapolation* GetExtrapolation( EExtrapolationPos in_Pos ); 00113 00122 SI_Void SetExtrapolation( EExtrapolationPos in_Pos, CSLExtrapolation *in_pExtrapolation ); 00123 00129 CSLExtrapolation* ConnectExtrapolation( EExtrapolationPos in_Pos, CSLExtrapolation* in_pExtrapolation ); 00130 00131 // ClipToParent functionality //////////////////////////////////////////// 00132 00137 CSLXSIClipToParent* CreateClipToParent(); 00138 00142 CSLXSIClipToParent* GetClipToParent(); 00143 00151 SI_Void SetClipToParent( CSLXSIClipToParent *in_pXSIClipToParent ); 00152 00157 CSLXSIClipToParent* ConnectClipToParent( CSLXSIClipToParent* in_pClipToParent ); 00158 00159 private: 00160 CSLFloatProxy m_In; 00161 CSLFloatProxy m_Out; 00162 CSLFloatProxy m_StartOffset; 00163 CSLFloatProxy m_Scale; 00164 CSLExtrapolation* m_pExtrapolationBefore; 00165 CSLExtrapolation* m_pExtrapolationAfter; 00166 CSLXSIClipToParent* m_pClipToParent; 00167 }; 00168 00169 #endif