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 _XSISHAPEANIMATION_H 00013 #define _XSISHAPEANIMATION_H 00014 00015 #include "Template.h" 00016 #include "ActionClip.h" 00017 00018 class CSLXSIShape; 00019 class CSLFCurve; 00020 00025 class XSIEXPORT CSLXSIShapeAnimation 00026 : public CSLTemplate 00027 { 00028 public: 00035 CSLXSIShapeAnimation(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate, EFCurveInterpolationType in_Type); 00036 virtual ~CSLXSIShapeAnimation(); 00037 00041 CSLXSIShape* AddXSIShape(); 00042 00049 CSLXSIShape* InsertXSIShape(SI_Int in_nIndex); 00050 00054 SI_Int GetXSIShapeCount(); 00055 00059 CSLXSIShape** XSIShapes(); 00060 00066 SI_Error RemoveXSIShape(SI_Int in_nIndex); 00067 00073 SI_Error RemoveXSIShape(CSLXSIShape* in_pObject); 00074 00078 SI_Error ClearXSIShapes(); 00079 00084 CSLFCurve* Animation(); 00085 00091 CSLFCurve* AddAnimation(); 00092 00093 // Connection functions; 00094 CSLFCurve* ConnectAnimation(CSLFCurve *in_pNewAnimation); 00095 CSLXSIShape* ConnectXSIShape(CSLXSIShape* in_pNewShape, SI_Int in_nIndex); 00096 00100 CSLActionClip* GetFirstActionClipByShape(CSLXSIShape* in_pShape); 00101 00102 virtual SI_Error Fix(); 00103 virtual SI_Error Synchronize(); 00104 00108 virtual ETemplateType Type() { return XSI_SHAPE_ANIMATION; } 00109 00110 protected: 00111 virtual CSLXSIShape* CreateXSIShape(); 00112 00113 private: 00114 CSIBCArray<CSLXSIShape *> m_XSIShapes; 00115 CSLFCurve* m_pAnimation; 00116 CSLStrEnumProxy<EFCurveInterpolationType, SI_CUBIC> m_InterpolationType; 00117 00118 void *m_pReserved; // reserved for future extension 00119 }; 00120 00121 #endif