/////////////////////////////////////////////////////////////////////////////// // 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 _PRCPRODUCTOCCURRENCE_INCLUDED_ #define _PRCPRODUCTOCCURRENCE_INCLUDED_ #include "PrcUserData.h" #include "PrcSceneDisplayParameters.h" #include "PrcFilter.h" #include "PrcView.h" #include "PrcMarkups.h" #include "PrcReference.h" #include "PrcTransformation3d.h" #include "PrcProductInformation.h" #include "PrcReferencesOfProductOccurrence.h" #include "PrcBaseWithGraphics.h" #include "OdStack.h" #include "PrcPartDefinition.h" SMARTPTR(OdPrcProductOccurrence); /** \details The class represents and operates an assembly tree. */ class PRC_TOOLKIT OdPrcProductOccurrence : public OdPrcBaseWithGraphics { public: //DOM-IGNORE-BEGIN ODPRC_DECLARE_MEMBERS_PRCBASE(OdPrcProductOccurrence); //DOM-IGNORE-END /** \details Destroys the assembly tree object. */ virtual ~OdPrcProductOccurrence(); /** \details Sets a new location that moves entities from the to its parent space. \param location [in] A pointer to a between the and its parent. \returns The eOk value when a new location is successfully applied; otherwise, the method returns an appropriate error code. */ OdResult setLocation(const OdPrcTransformation3d * location); /** \details Requests the current location of the . \returns An object that represents the current location of the . */ const OdPrcTransformation3d *location() const; /** \details Requests current references of the . \returns An object that represents current references of the . \remarks The object is returned via a reference, and therefore any modification of the returned object causes the references to be changed as well. To restrict modifications of the outside the object, call another method that returns a constant reference. */ OdPrcReferencesOfProductOccurrence &referencesOfProductOccurrence(); /** \details Requests current references of the . \returns An object that represents current references of the . */ const OdPrcReferencesOfProductOccurrence &referencesOfProductOccurrence() const; /** \details Requests the current of the . \returns An object from the . \remarks The object is returned via a reference, and therefore any modification of the returned object causes the product information within the to be changed as well. To restrict modifications of the outside the object, call another method that returns a constant reference. */ OdPrcProductInformation &productInformation(); /** \details Requests the current of the . \returns An object . */ const OdPrcProductInformation &productInformation() const; /** \details Requests the referenced entities from the . \returns An array of identifiers that refer to referenced entities within the . These entities may have modifiers to their nominal definition. \remarks The is returned via a reference, and therefore any modification of the returned array causes the list of referenced entities within the to be changed as well. To restrict modifications of the that refer to referenced entities outside the object, call another method that returns a constant reference. */ OdPrcObjectIdArray &entityReference(); /** \details Requests the referenced entities from the . \returns An array of identifiers that refer to the referenced entities within the . These entities may have modifiers to their nominal definition. */ const OdPrcObjectIdArray &entityReference() const; /** \details Requests the information about markups within the . \returns An object that contains the current information about markups. \remarks The object is returned via a reference, and therefore any modification of the link OdPrcMarkups, OdPrcMarkups> object causes the information about markups to be changed as well. To restrict modifications of the outside the object, call another method that returns a constant reference. */ OdPrcMarkups &markups(); /** \details Requests the information about markups within the . \returns An object that contains the current information about markups. */ const OdPrcMarkups &markups() const; /** \details Requests annotation views from the object. \returns An that refer to the annotation views. \remarks The is returned via a reference, and therefore any modification of the returned array causes the list of annotation views to be changed as well. To restrict modifications of the outside the object, call another method that returns a constant reference. */ OdPrcObjectIdArray &annotationViews(); /** \details Requests annotation views from the object. \returns An that refer to the annotation views. */ const OdPrcObjectIdArray &annotationViews() const; /** \details Requests display filters from the object. \returns An that refer to the display filters. \remarks The is returned via a reference, and therefore any modification of the returned array causes the list of display filters to be changed as well. To restrict modifications of the outside the object, call another method that returns a constant reference. */ OdPrcObjectIdArray &displayFilter(); /** \details Requests display filters from the object. \returns An that refer to the display filters. */ const OdPrcObjectIdArray &displayFilter() const; /** \details Requests current specific filters from the object. A specific filter is applied when data is being loaded from a product prototype. \returns An that refer to the specific filters. \remarks The is returned via a reference, and therefore any modification of the returned array causes the list of specific filters to be changed as well. To restrict modifications of the outside the object, call another method that returns a constant reference. */ OdPrcObjectIdArray &entityFilter(); /** \details Requests current specific filters from the object. A specific filter is applied when data is being loaded from a product prototype. \returns An that refer to the specific filters. */ const OdPrcObjectIdArray &entityFilter() const; /** \details Requests the current scene display parameters from the object. \returns An that refer to the scene display parameters. \remarks The is returned via a reference, and therefore any modification of the returned array causes the list of scene display parameters to be changed as well. To restrict modifications of the outside the object, call another method that returns a constant reference. */ OdPrcObjectIdArray &sceneDisplayParameters(); /** \details Requests the current scene display parameters from the object. \returns An that refer to the scene display parameters. */ const OdPrcObjectIdArray &sceneDisplayParameters() const; /** \details Requests the current user-defined data from the object. \returns An object that contains the user-defined data. \remarks User data is returned as a reference to an object, and therefore it can be used to set new user data. To restrict modifications of the user data outside the object, call another method that returns a constant reference. */ OdPrcUserData &userData(); /** \details Requests the current user-defined data from the object. \returns An object that contains the user-defined data. */ const OdPrcUserData &userData() const; /** \details Sets a new product behavior value. The behavior value contains different flags for the product occurrence. \param product_behaviour [in] A signed byte value that contains the new behavior value to be set. */ void setProductBehaviour(OdInt8 product_behaviour); /** \details Requests the current behavior value. \returns A signed byte value that contains the current product occurrence behavior value. */ OdInt8 productBehaviour() const; /** \details Requests the current external data from the . \returns A raw pointer to an object that represents the current external data. */ const OdPrcProductOccurrence* getExternalData() const; /** \details Requests the current for the . \returns A raw pointer to the object that represents the part definition. */ const OdPrcPartDefinition* getPartDefinition() const; /** \details Requests the current location of the . \returns A raw pointer to the object that represents the current location of the product assembly tree. */ const OdPrcTransformation3d* getLocation() const; protected: virtual OdUInt32 subSetAttributes (OdGiDrawableTraits * traits) const; virtual bool subWorldDraw (OdGiWorldDraw * pWd) const; }; #endif // _PRCPRODUCTOCCURRENCE_INCLUDED_