Mixer.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _MIXER_H
00015 #define _MIXER_H
00016 
00017 #include "Template.h"
00018 
00019 // Forward declaration
00020 class CSLAction;
00021 class CSLTrack;
00022 
00037 class XSIEXPORT CSLMixer
00038     : public CSLTemplate
00039 {
00040 public:
00046     CSLMixer(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00047     virtual ~CSLMixer();
00048 
00052     virtual SI_Error Synchronize();
00053 
00057     CSLTemplate::ETemplateType Type(){ return CSLTemplate::XSI_MIXER; }
00058 
00062     SI_Bool GetActive();
00063 
00067     SI_Void SetActive( SI_Bool in_bNew );
00068 
00072     SI_Bool GetAutoTransition();
00073 
00077     SI_Void SetAutoTransition( SI_Bool in_bNew );
00078 
00087     SI_Bool GetMaintainContinuity();
00088 
00098     SI_Void SetMaintainContinuity( SI_Bool in_bNew );
00099 
00106     SI_Bool GetNormalize();
00107 
00115     SI_Void SetNormalize( SI_Bool in_bNew );
00116 
00125     SI_Bool GetQuaternionMixing();
00126 
00135     SI_Void SetQuaternionMixing( SI_Bool in_bNew );
00136 
00140     SI_Bool GetRemoveSpins();
00141 
00152     SI_Void SetRemoveSpins( SI_Bool in_bNew );
00153 
00154     // Actions functionality //////////////////////////////////////////////////
00155 
00161     SI_Error RemoveAction( SI_Int in_nIndex );
00162 
00168     SI_Error RemoveAction( CSLAction *in_pToRemove );
00169 
00173     CSLAction** GetActionList();
00174 
00178     SI_Int GetActionCount();
00179 
00183     virtual CSLAction* AddAction();
00184 
00188     SI_Error ClearActions();
00189 
00194     CSLAction* ConnectAction(CSLAction* in_pNewAction);
00195 
00200     CSLAction* FindAction(SI_Char* in_pActionName);
00201 
00202     // Tracks functionality //////////////////////////////////////////////////
00203 
00209     SI_Error RemoveTrack( SI_Int in_nIndex );
00210 
00216     SI_Error RemoveTrack( CSLTrack *io_pToRemove );
00217 
00221     CSLTrack** GetTrackList();
00222 
00226     SI_Int GetTrackCount();
00227 
00231     CSLTrack* AddTrack();
00232 
00236     SI_Error ClearTracks();
00237 
00242     CSLTrack* ConnectTrack(CSLTrack* in_pNewTrack);
00243 
00244     CSLBoolProxy* GetAutoTransitionProxy() { return &m_AutoTransition; };
00245     CSLBoolProxy* GetActiveProxy() { return &m_Active; };
00246     CSLBoolProxy* GetNormalizeProxy() { return &m_Normalize; };
00247     CSLBoolProxy* GetQuaternionMixingProxy() { return &m_QuaternionMixing; };
00248     CSLBoolProxy* GetRemoveSpinsProxy() { return &m_RemoveSpins; };
00249     CSLBoolProxy* GetMaintainContinuityProxy() { return &m_MaintainContinuity; };
00250 
00251 private:
00252     CSLBoolProxy m_AutoTransition;
00253     CSLBoolProxy m_Active;
00254     CSLBoolProxy m_Normalize;
00255     CSLBoolProxy m_QuaternionMixing;
00256     CSLBoolProxy m_RemoveSpins;
00257     CSLBoolProxy m_MaintainContinuity;
00258     CSIBCArray<CSLAction *> m_Actions;
00259     CSIBCArray<CSLTrack *> m_Tracks;
00260 
00261     SI_Void *m_pReserved;
00262 };
00263 
00264 #endif // _MIXER_H