CurveList.h

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 _CURVELIST_H
00013 #define _CURVELIST_H
00014 
00015 #include "Primitive.h"
00016 
00017 // Forward declaration
00018 class CSLNurbsCurve;
00019 
00023 class XSIEXPORT CSLCurveList
00024     : public CSLPrimitive
00025 {
00026 public:
00027 
00034     CSLCurveList(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00035 
00038     virtual ~CSLCurveList();
00039 
00043     CSLNurbsCurve* AddCurve();
00044 
00048     SI_Int GetCurveCount();
00049 
00053     CSLNurbsCurve** Curves();
00054 
00059     SI_Error RemoveCurve(SI_Int in_nIndex);
00060 
00065     SI_Error RemoveCurve(CSLNurbsCurve* in_pCurve);
00066 
00070     SI_Error ClearCurves();
00071 
00076     CSLNurbsCurve* ConnectCurve(CSLNurbsCurve* in_pNewCurve);
00077 
00082     virtual SI_Error Synchronize();
00083 
00087     virtual ETemplateType Type();
00088 
00089 private:
00090     CSIBCArray<CSLNurbsCurve *> m_Curves;
00091 
00092     void *m_pReserved;  // reserved for future extension
00093 };
00094 
00095 #endif