# ActionClip.h

    00001 //***************************************************************************************
    00002 //
    00003 // File supervisor: Crosswalk team
    00004 //
    00005 // Copyright 2008 Autodesk, Inc.  All rights reserved.
    00006 // Use of this software is subject to the terms of the Autodesk license agreement
    00007 // provided at the time of installation or download, or which otherwise accompanies
    00008 // this software in either electronic or hard copy form.
    00009 //
    00010 //***************************************************************************************
    00011
    00012 #ifndef _ACTIONCLIP_H
    00013 #define _ACTIONCLIP_H
    00014
    00015 #include "Template.h"
    00016
    00017 // Forward declaration
    00018 class CSLTimeControl;
    00019 class CSLAction;
    00020
    00033 class XSIEXPORT CSLActionClip
    00034     : public CSLTemplate
    00035 {
    00036 public:
    00037
    00043     CSLActionClip(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
    00044
    00047     virtual ~CSLActionClip();
    00048
    00049     SI_Error Synchronize();
    00050
    00054     CSLTemplate::ETemplateType Type(){ return CSLTemplate::XSI_ACTIONCLIP; }
    00055
    00060     SI_Bool GetActive();
    00061
    00065     SI_Void SetActive( SI_Bool in_bNew );
    00066
    00070     SI_Float GetDuration();
    00071
    00075     SI_Void SetDuration( SI_Float in_fNew );
    00076
    00085     SI_Bool GetFillAction();
    00086
    00094     SI_Void SetFillAction( SI_Bool in_bNew );
    00095
    00101     SI_Int GetFillPriority();
    00102
    00108     SI_Void SetFillPriority( SI_Int in_nNew );
    00109
    00113     SI_Float GetStartTime();
    00114
    00118     SI_Void SetStartTime( SI_Float in_fNew );
    00119
    00123     SI_Float GetWeight();
    00124
    00128     SI_Void SetWeight( SI_Float in_fNew );
    00129
    00130     // action functionality ///////////////////////////////////////////////////
    00131
    00137     CSLAction* GetReference();
    00138
    00145     SI_Void SetReference( CSLAction* in_pAction );
    00146
    00147     SI_Char* GetReferenceXSIPath();
    00148     SI_Void SetReferenceXSIPath( SI_Char* in_szPath );
    00149
    00150     // time control functionality /////////////////////////////////////////////
    00151
    00155     CSLTimeControl* AddTimeControl();
    00156
    00161     CSLTimeControl* ConnectTimeControl( CSLTimeControl *in_pTimeControl );
    00162
    00168     SI_Error RemoveTimeControl( SI_Int in_nIndex );
    00169
    00175     SI_Error RemoveTimeControl( CSLTimeControl *in_pTimeControl );
    00176
    00180     CSLTimeControl** GetTimeControlList();
    00181
    00185     SI_Int GetTimeControlCount();
    00186
    00190     SI_Error ClearTimeControls();
    00191
    00192
    00193     CSLFloatProxy*      GetStartTimeProxy(){return &m_StartTime;};
    00194     CSLFloatProxy*      GetDurationProxy(){return &m_Duration;};
    00195     CSLBoolProxy*       GetActiveProxy(){return &m_Active;};
    00196     CSLFloatProxy*      GetWeightProxy(){return &m_Weight;};
    00197     CSLBoolProxy*       GetFillActionProxy(){return &m_FillAction;};
    00198     CSLIntProxy*        GetFillPriorityProxy(){return &m_FillPriority;};
    00199     CSLStringProxy*     GetReferencePathProxy(){return &m_ReferencePath;};
    00200
    00201     virtual CSLAnimatableType*  ParameterFromName(SI_Char *in_szName);
    00202     virtual CSLAnimatableType*  ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName);
    00203
    00204 private:
    00205     CSLFloatProxy m_StartTime;
    00206     CSLFloatProxy m_Duration;
    00207     CSLBoolProxy m_Active;
    00208     CSLFloatProxy m_Weight;
    00209     CSLBoolProxy m_FillAction;
    00210     CSLIntProxy m_FillPriority;
    00211     CSLStringProxy m_ReferencePath;
    00212     CSLAction* m_pReference;
    00213     CSIBCArray<CSLTimeControl *> m_TimeControls;
    00214     SI_Void *m_pReserved;
    00215 };
    00216
    00217 #endif