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