/////////////////////////////////////////////////////////////////////////////// // 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_GEOMETRYCYLINDER_H__ #define __TNW_GEOMETRYCYLINDER_H__ #include "NwGeometry.h" #include "NwTriangleIndexes.h" class OdGeVector3d; class OdGePoint3d; /** \details This class represents geometry with the cylinder type. */ class NWDBEXPORT OdNwGeometryCylinder : public OdNwGeometry { //DOM-IGNORE-BEGIN ODRX_DECLARE_MEMBERS(OdNwGeometryCylinder); //DOM-IGNORE-END public: /** \details Default constructor. Creates a new object of the OdNwGeometryCylinder class. */ OdNwGeometryCylinder(); public: /** \details Virtual destructor. Frees allocated resources. */ virtual ~OdNwGeometryCylinder(); public: /** \details Gets the radius of the cylinder geometry data. \returns A double object with the radius of the cylinder geometry data. */ double getRadius() const; /** \details Gets the top center of the cylinder geometry data. \returns An OdGePoint3d object with the top center of the cylinder geometry data. */ OdGePoint3d getTopCenter() const; /** \details Gets the bottom center of the cylinder geometry data. \returns An OdGePoint3d object with the bottom center of the cylinder geometry data. */ OdGePoint3d getBottomCenter() const; /** \details Gets the X axis of the cylinder geometry data. \returns An OdGeVector3d object with the X axis of the cylinder geometry data. */ OdGeVector3d getXAxis() const; /** \details Gets the Y axis of the cylinder geometry data. \returns An OdGeVector3d object with the Y axis of the cylinder geometry data. */ OdGeVector3d getYAxis() 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 This template class is a specialization of the OdSmartPtr class for OdNwGeometryCylinder object pointers. */ typedef OdSmartPtr OdNwGeometryCylinderPtr; #endif //__TNW_GEOMETRYCYLINDER_H__