XSIShapeAnimation.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _XSISHAPEANIMATION_H
00015 #define _XSISHAPEANIMATION_H
00016 
00017 #include "Template.h"
00018 #include "ActionClip.h"
00019 
00020 class CSLXSIShape;
00021 class CSLFCurve;
00022 
00029 class XSIEXPORT CSLXSIShapeAnimation
00030     : public CSLTemplate
00031 {
00032 public:
00039     CSLXSIShapeAnimation(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate, EFCurveInterpolationType in_Type);
00040     virtual ~CSLXSIShapeAnimation();
00041 
00045     CSLXSIShape*                AddXSIShape();
00046 
00052     CSLXSIShape*                InsertXSIShape(SI_Int in_nIndex);
00053 
00057     SI_Int                      GetXSIShapeCount();
00058 
00062     CSLXSIShape**               XSIShapes();
00063 
00069     SI_Error                    RemoveXSIShape(SI_Int in_nIndex);
00070 
00076     SI_Error                    RemoveXSIShape(CSLXSIShape* in_pObject);
00077 
00081     SI_Error                    ClearXSIShapes();
00082 
00086     CSLFCurve*                  Animation();
00087 
00092     CSLFCurve*                  AddAnimation();
00093 
00094     // Connection functions;
00095     CSLFCurve*                  ConnectAnimation(CSLFCurve *in_pNewAnimation);
00096     CSLXSIShape*                ConnectXSIShape(CSLXSIShape* in_pNewShape, SI_Int in_nIndex);
00097 
00102     CSLActionClip*              GetFirstActionClipByShape(CSLXSIShape* in_pShape);
00103 
00104     virtual SI_Error Fix();
00105     virtual SI_Error Synchronize();
00106 
00110     virtual ETemplateType Type() { return XSI_SHAPE_ANIMATION; }
00111 
00112 protected:
00113     virtual CSLXSIShape*        CreateXSIShape();
00114 
00115 private:
00116     CSIBCArray<CSLXSIShape *>   m_XSIShapes;
00117     CSLFCurve*                  m_pAnimation;
00118     CSLStrEnumProxy<EFCurveInterpolationType, SI_CUBIC>     m_InterpolationType;
00119 
00120     void *m_pReserved;  // reserved for future extension
00121 };
00122 
00123 #endif