/////////////////////////////////////////////////////////////////////////////// // 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_GEOMETRYCIRCLE_H__ #define __TNW_GEOMETRYCIRCLE_H__ #include "NwGeometry.h" #include "NwTriangleIndexes.h" #include "Ge/GePoint3d.h" class OdGeVector3d; class OdGePoint3d; /** \details This class represents geometry with the elliptical shape type. */ class NWDBEXPORT OdNwGeometryCircle : public OdNwGeometry { //DOM-IGNORE-BEGIN ODRX_DECLARE_MEMBERS(OdNwGeometryCircle); //DOM-IGNORE-END public: /** \details Default constructor. Creates a new OdNwGeometryCircle object. */ OdNwGeometryCircle(); public: /** \details Virtual destructor. Frees allocated resources. */ virtual ~OdNwGeometryCircle(); public: /** \details Gets the origin of the geometry data. \returns An OdGePoint3d object with the origin of the geometry data. */ OdGePoint3d getOrigin() const; /** \details Gets the radius of the elliptical geometry data. \returns Radius of the elliptical geometry data. */ double getRadius() const; /** \details Gets the X vector of the elliptical geometry data. \returns The X vector of the elliptical geometry data. */ OdGeVector3d getXVector() const; /** \details Gets the Y vector of the elliptical geometry data. \returns The Y vector of the elliptical geometry data. */ OdGeVector3d getYVector() const; /** \details Gets a triangles data object. \param pointPowerOfTwo [in] The power of two value of discretization point count. This value is between 4 and 15. \returns The OdNwTriangleData objects with vertices, normals and triangle indices. */ OdNwTriangleData toShell(OdUInt32 pointPowerOfTwo = 4) const; /** \details Gets an array of 3D points of this object. \param pointPowerOfTwo [in] The power of two value of discretization point count. This value is between 4 and 15. \returns An OdGePoint3dArray array of points. */ OdGePoint3dArray toPolyline(OdUInt32 pointPowerOfTwo = 4) const; }; /** \details This template class is a specialization of the OdSmartPtr class for OdNwGeometryCircle object pointers. */ typedef OdSmartPtr OdNwGeometryCirclePtr; #endif //__TNW_GEOMETRYCIRCLE_H__