/////////////////////////////////////////////////////////////////////////////// // 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. /////////////////////////////////////////////////////////////////////////////// // StepMappedItem.h: interface for the OdStepMappedItem class. // ////////////////////////////////////////////////////////////////////// #ifndef _STEP_STEPMAPPEDITEM_H_ #define _STEP_STEPMAPPEDITEM_H_ #include "Gi/Gi.h" #include "StepRepresentationItem.h" #include "ModelerGeometry/StepModelerGeometry.h" namespace OdStep { /** \details A base class that implements storing and handling data about an StepMappedItem. An StepMappedItem is a sub-type of an StepRepresentationItem that represents a representation item nested in other representation item. */ class STEPGEOM_EXPORT OdStepMappedItem : public OdStepRepresentationItem { ODRX_DECLARE_MEMBERS(OdStepMappedItem); OdGeMatrix3d m; public: /** \details Composes the mapped item. */ virtual void compose() override; /** \details Draws the mapped item to the OdGiWorldDraw interface. \param pWd [in] A raw pointer to the object for the entity-level vectorization. \returns true if the mapped item was successfully drawn; otherwise, the method returns false. */ virtual bool draw(OdGiWorldDraw* pWd) const override; /** \details Applies the specified transformation matrix. \param transform [in] Transformation matrix that is multiplied by current matrix. \returns eOk if method executes successfully; otherwise, the method returns an appropriate error code. */ OdResult transformBy(const OdGeMatrix3d &transform) override; /** \details Gets an array of mapped items. \param openings [out] Receives mapped items. \param needCopy [in] Flag that specifies whether to append clones to the items array. If false, appends original items. \param needTransform [in] Flag that specifies whether to apply transform matrix to the received items. \returns eOk if method executes successfully; otherwise, the method returns an appropriate error code. */ OdResult getMappedItems(OdArray& openings, bool needCopy = false, bool needTransform = false); }; /** \details A data type that represents a smart pointer to an