/////////////////////////////////////////////////////////////////////////////// // 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 _PRCFILESTRUCTURETREE_INCLUDED_ #define _PRCFILESTRUCTURETREE_INCLUDED_ #include "PrcUserData.h" #include "PrcFileStructureInternalData.h" #include "PrcProductOccurrence.h" #include "PrcPartDefinition.h" #include "PrcBase.h" SMARTPTR(OdPrcFileStructureTree); /** \details Class implements a file structure tree. A file structure tree contains a hierarchy of nodes representing product occurrences, part definitions, representation items, and markups. */ class PRC_TOOLKIT OdPrcFileStructureTree : public OdPrcBase { public: //DOM-IGNORE-BEGIN ODPRC_DECLARE_MEMBERS_PRCBASE(OdPrcFileStructureTree); //DOM-IGNORE-END /** \details Requests the current array of from the file structure tree. \returns An array of that refer to the . \remarks The array of is returned via a reference, and therefore it can be used to set a new array of outside the object. To restrict modifications of the array of outside the object, call another method that returns a constant reference. */ OdPrcObjectIdArray &partDefinition(); /** \details Requests the current array of from the file structure tree. \returns An array of that refer to the . */ const OdPrcObjectIdArray &partDefinition() const; /** \details Requests the array of current product occurrences from the file structure tree. \returns An array of smart pointers to objects. */ const OdPrcProductOccurrencePtrArray &productOccurrence() const; /** \details Requests the current internal data from the file structure tree. \returns An object that contains internal data of the file structure tree. \remarks The object is returned via a reference, and therefore it can be changed outside the object. To restrict modifications of the object outside the object, call another method that returns a constant reference. */ OdPrcFileStructureInternalData &internalData(); /** \details Requests the current internal data from the file structure tree. \returns An object that contains internal data of the file structure tree. */ const OdPrcFileStructureInternalData &internalData() const; /** \details Requests the current user-defined data from the file structure tree. \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 file structure tree. \returns An object that contains the user-defined data. */ const OdPrcUserData &userData() const; /** \details Regenerates the array of in the correct order for a specified file structure tree. \param fsTree [in/out] A reference to a object. The array of is regenerated for this object. */ static void updateProductOccurrenceArray(OdPrcFileStructureTree &fsTree); }; #endif // _PRCFILESTRUCTURETREE_INCLUDED_