/////////////////////////////////////////////////////////////////////////////// // 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 _BASEMODELERGEOMETRY_H_ #define _BASEMODELERGEOMETRY_H_ #include "Ge/GeVector3d.h" #include "Ge/GeCurve3d.h" #include "daiDeviationParams.h" #include "daiBodyVariant.h" #include "daiBuildOptions.h" #include "TD_PackPush.h" class OdIBrFile; class OdGiWorldDraw; /** \details Implements the Data Access Interface (DAI) that provides functionality for manipulating data that is defined within the EXPRESS SCHEMA format. */ namespace OdDAI { //DOM-IGNORE-BEGIN class OdBaseModelerGeometry; typedef OdSmartPtr OdBaseModelerGeometryPtr; //DOM-IGNORE-END /** \details The class provides base geometry modeler functionality. It keeps a body for the visualization and other base operations in the format of appropriate modeler implementation. */ class DAI_EXPORT OdBaseModelerGeometry : public OdRxObject { protected: //DOM-IGNORE-BEGIN void copyFrom(const OdRxObject*) = 0; //DOM-IGNORE-END public: ODRX_DECLARE_MEMBERS(OdBaseModelerGeometry); /** \details Draws body to OdGiWorldDraw. \param pWd [in] Object for entity-level vectorization. \returns True if the object has been successfully drawn; otherwise, the method returns false. */ virtual bool draw(OdGiWorldDraw* pWd) const = 0; /** \details Transforms body in StepModelerGeometry. \param m [in] Transformation matrix. */ virtual void transform(const OdGeMatrix3d &m) = 0; /** \details Calculates extents of body in StepModelerGeometry. \param box [out] Body extents. \returns Returns result code, eOk if all right, eNullExtents if body is NULL. */ virtual OdResult getBoundingBox(OdGeExtents3d &box) const = 0; /** \details Copies body and stores it in StepModelerGeometry. \param b [in] Source StepModelerGeometry. \returns Returns result code, eOk if all right, eNullEntityPointer if source is NULL or eIllegalEntityType if source is not kind of StepModelerGeometry */ virtual OdResult copyBody(OdBaseModelerGeometryPtr b) = 0; /** \details Assigns deviation params to StepModelerGeometry. \param params [in] Set of deviation parameters. */ virtual void setDeviationParams(const OdDeviationParams& params) = 0; /** \details Gets OdBrFile interface from StepModelerGeometry. \returns Returns OdIBrFile interface. */ virtual OdIBrFile* brep() const = 0; /** \details Gets container with body from this modeler. \returns Returns body container. And this value make sense only while the modeler is not changed. */ virtual OdBodyVariant bodyContainer() const = 0; }; } #include "TD_PackPop.h" #endif // _BASEMODELERGEOMETRY_H_