SurfaceMesh.h

00001 /****************************************************************************************
00002 THIS CODE IS PUBLISHED AS A SAMPLE ONLY AND IS PROVIDED "AS IS".
00003 IN NO EVENT SHALL SOFTIMAGE, AVID TECHNOLOGY, INC. AND/OR THEIR RESPECTIVE 
00004 SUPPLIERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
00005 DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
00006 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
00007 CONNECTION WITH THE USE OR PERFORMANCE OF THIS CODE . 
00008  
00009 COPYRIGHT NOTICE. Copyright © 1999-2002 Avid Technology Inc. . All rights reserved. 
00010 
00011 SOFTIMAGE is a registered trademark of Avid Technology Inc. or its subsidiaries 
00012 or divisions. Windows NT is a registered trademark of Microsoft Corp. All other
00013 trademarks contained herein are the property of their respective owners. 
00014 ****************************************************************************************/
00015 
00016 /******************************************************************************\
00017 *
00018 * File:          SurfaceMesh.h
00019 * Creation date: January 15, 2002
00020 * Purpose:       Declaration of class 'CSLSurfaceMesh'
00021 *
00022 \******************************************************************************/
00023 #ifndef _SURFACEMESH_H
00024 #define _SURFACEMESH_H
00025 
00026 #include "Primitive.h"
00027 
00028 
00029 class CSLNurbsSurface;
00030 
00037 class XSIEXPORT CSLSurfaceMesh
00038     : public CSLPrimitive
00039 {
00040 public:
00041     CSLSurfaceMesh(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00042     virtual ~CSLSurfaceMesh();
00043 
00047     CSLNurbsSurface* AddSurface();
00048 
00052     SI_Int GetSurfaceCount();
00053 
00057     CSLNurbsSurface **Surfaces();
00058 
00063     SI_Error RemoveSurface(SI_Int in_nIndex);
00064 
00069     SI_Error RemoveSurface(CSLNurbsSurface* in_pSurface);
00070 
00074     SI_Error ClearSurfaces();
00075 
00076     // Connection functions.
00077     CSLNurbsSurface* ConnectSurface(CSLNurbsSurface* in_pNewSurface);
00078 
00079     virtual SI_Error Synchronize();
00080     virtual ETemplateType Type();
00081 
00082 private:
00083     CSIBCArray<CSLNurbsSurface *> m_Surfaces;
00084 
00085     void *m_pReserved;  // reserved for future extension
00086 };
00087 
00088 #endif