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 
00024 class XSIEXPORT CSLSurfaceMesh
00025     : public CSLPrimitive
00026 {
00027 public:
00028     CSLSurfaceMesh(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00029     virtual ~CSLSurfaceMesh();
00030 
00034     CSLNurbsSurface* AddSurface();
00035 
00039     SI_Int GetSurfaceCount();
00040 
00044     CSLNurbsSurface **Surfaces();
00045 
00050     SI_Error RemoveSurface(SI_Int in_nIndex);
00051 
00056     SI_Error RemoveSurface(CSLNurbsSurface* in_pSurface);
00057 
00061     SI_Error ClearSurfaces();
00062 
00063     // Connection functions.
00064     CSLNurbsSurface* ConnectSurface(CSLNurbsSurface* in_pNewSurface);
00065 
00066     virtual SI_Error Synchronize();
00067     virtual ETemplateType Type();
00068 
00069 private:
00070     CSIBCArray<CSLNurbsSurface *> m_Surfaces;
00071 
00072     void *m_pReserved;  // reserved for future extension
00073 };
00074 
00075 #endif