ActionClip.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _ACTIONCLIP_H
00015 #define _ACTIONCLIP_H
00016 
00017 #include "Template.h"
00018 
00019 // Forward declaration
00020 class CSLTimeControl;
00021 class CSLAction;
00022 
00037 class XSIEXPORT CSLActionClip
00038     : public CSLTemplate
00039 {
00040 public:
00041 
00047     CSLActionClip(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00048 
00051     virtual ~CSLActionClip();
00052 
00053     SI_Error Synchronize();
00054 
00058     CSLTemplate::ETemplateType Type(){ return CSLTemplate::XSI_ACTIONCLIP; }
00059 
00064     SI_Bool GetActive();
00065 
00069     SI_Void SetActive( SI_Bool in_bNew );
00070 
00074     SI_Float GetDuration();
00075 
00079     SI_Void SetDuration( SI_Float in_fNew );
00080 
00089     SI_Bool GetFillAction();
00090 
00098     SI_Void SetFillAction( SI_Bool in_bNew );
00099 
00105     SI_Int GetFillPriority();
00106 
00112     SI_Void SetFillPriority( SI_Int in_nNew );
00113 
00117     SI_Float GetStartTime();
00118 
00122     SI_Void SetStartTime( SI_Float in_fNew );
00123 
00127     SI_Float GetWeight();
00128 
00132     SI_Void SetWeight( SI_Float in_fNew );
00133 
00134     // action functionality ///////////////////////////////////////////////////
00135 
00141     CSLAction* GetReference();
00142 
00149     SI_Void SetReference( CSLAction* in_pAction );
00150 
00151     SI_Char* GetReferenceXSIPath();
00152     SI_Void SetReferenceXSIPath( SI_Char* in_szPath );
00153 
00154     // time control functionality /////////////////////////////////////////////
00155 
00159     CSLTimeControl* AddTimeControl();
00160 
00165     CSLTimeControl* ConnectTimeControl( CSLTimeControl *in_pTimeControl );
00166 
00172     SI_Error RemoveTimeControl( SI_Int in_nIndex );
00173 
00179     SI_Error RemoveTimeControl( CSLTimeControl *in_pTimeControl );
00180 
00184     CSLTimeControl** GetTimeControlList();
00185 
00189     SI_Int GetTimeControlCount();
00190 
00194     SI_Error ClearTimeControls();
00195 
00196 
00197     CSLFloatProxy*      GetStartTimeProxy(){return &m_StartTime;};
00198     CSLFloatProxy*      GetDurationProxy(){return &m_Duration;};
00199     CSLBoolProxy*       GetActiveProxy(){return &m_Active;};
00200     CSLFloatProxy*      GetWeightProxy(){return &m_Weight;};
00201     CSLBoolProxy*       GetFillActionProxy(){return &m_FillAction;};
00202     CSLIntProxy*        GetFillPriorityProxy(){return &m_FillPriority;};
00203     CSLStringProxy*     GetReferencePathProxy(){return &m_ReferencePath;};
00204 
00205     virtual CSLAnimatableType*  ParameterFromName(SI_Char *in_szName);
00206     virtual CSLAnimatableType*  ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName);
00207 
00208 private:
00209     CSLFloatProxy m_StartTime;
00210     CSLFloatProxy m_Duration;
00211     CSLBoolProxy m_Active;
00212     CSLFloatProxy m_Weight;
00213     CSLBoolProxy m_FillAction;
00214     CSLIntProxy m_FillPriority;
00215     CSLStringProxy m_ReferencePath;
00216     CSLAction* m_pReference;
00217     CSIBCArray<CSLTimeControl *> m_TimeControls;
00218     SI_Void *m_pReserved;
00219 };
00220 
00221 #endif