SurfaceMesh.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 _SURFACEMESH_H
00013 #define _SURFACEMESH_H
00014 
00015 #include "Primitive.h"
00016 
00017 
00018 class CSLNurbsSurface;
00019 
00023 class XSIEXPORT CSLSurfaceMesh
00024     : public CSLPrimitive
00025 {
00026 public:
00027     CSLSurfaceMesh(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00028     virtual ~CSLSurfaceMesh();
00029 
00033     CSLNurbsSurface* AddSurface();
00034 
00038     SI_Int GetSurfaceCount();
00039 
00043     CSLNurbsSurface **Surfaces();
00044 
00049     SI_Error RemoveSurface(SI_Int in_nIndex);
00050 
00055     SI_Error RemoveSurface(CSLNurbsSurface* in_pSurface);
00056 
00060     SI_Error ClearSurfaces();
00061 
00062     // Connection functions.
00063     CSLNurbsSurface* ConnectSurface(CSLNurbsSurface* in_pNewSurface);
00064 
00065     virtual SI_Error Synchronize();
00066     virtual ETemplateType Type();
00067 
00068 private:
00069     CSIBCArray<CSLNurbsSurface *> m_Surfaces;
00070 
00071     void *m_pReserved;  // reserved for future extension
00072 };
00073 
00074 #endif