/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// #ifndef __TNW_GEOMETRY_SHELL_H__ #define __TNW_GEOMETRY_SHELL_H__ #include "NwGeometry.h" #include "NwTriangleIndexes.h" #include "UInt16Array.h" /** Forward declaration of the OdNwVerticesData class. */ class OdNwVerticesData; /** \details This template class is a specialization of the OdSmartPtr class for OdNwVerticesData object pointers. */ typedef OdSmartPtr OdNwVerticesDataPtr; /** \details This class represents geometry with the shell type. */ class NWDBEXPORT OdNwGeometryShell : public OdNwGeometry { //DOM-IGNORE-BEGIN ODRX_DECLARE_MEMBERS(OdNwGeometryShell); //DOM-IGNORE-END public: /** \details Default constructor. Creates a new OdNwGeometryMesh object. */ OdNwGeometryShell(); public: /** \details Virtual destructor. Releases allocated resources. */ virtual ~OdNwGeometryShell(); public: /** \details Gets an array with the number of vertices per face. \returns An OdArray object with the number of vertices per face. */ OdUInt16Array getVerticesPerFace() const; /** \details Gets an array with the indices for this mesh. \returns An OdArray object with the indices. */ OdUInt16Array getIndices() const; /** \details Gets an array with the triangles for this shell. \returns An OdArray object with the trianglulated faces. Each element of the face is a 0-based index of a vertex. \remarks Each element of a triangle is a 0-based index of vertex instead of 1-based returned by the getFaces() method. */ OdArray getTriangles(); /** \details Gets a vertices data object. \returns The OdNwVerticesDataPtr objects with vertices, normals, colors etc. */ OdNwVerticesDataPtr getVerticesData() const; }; /** \details This template class is a specialization of the OdSmartPtr class for OdNwGeometryShell object pointers. */ typedef OdSmartPtr OdNwGeometryShellPtr; #endif //__TNW_GEOMETRY_SHELL_H__