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