TimeControl.h

Go to the documentation of this file.
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