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