/////////////////////////////////////////////////////////////////////////////// // 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 _ODDGCELLHEADERFACETS_INCLUDED #define _ODDGCELLHEADERFACETS_INCLUDED #include "RxMember.h" #include "RxProperty.h" #include "RxAttribute.h" //====================================================================================================================== // OdDgCellHeader3dFacetProvider class allow to add facets with property sets to elements //====================================================================================================================== class OdDgCellHeader3dFacetProvider : public OdRxFacetProvider { static OdRxFacetProviderPtr instance; public: /** \details Returns an instance of the OdDgCellHeader3dFacetProvider class. */ static OdRxFacetProviderPtr createObject(); /** \details Assigns a facet provider to an instance of the OdDgCellHeader3dFacetProvider class. */ static void addProvider(); /** \details Removes a facet provider from an instance of the OdDgCellHeader3dFacetProvider class. */ static void removeProvider(); /** \details Adds properties list (facets) depending on the object type. \param pO [in] Input object. Possible object types: DgElement. \param pContext [in] Context. \param facets [in/out] Array of facets. */ virtual void getFacets(const OdRxObject* pO, const OdRxMemberQueryContext* pContext, OdArray& facets) ODRX_OVERRIDE; }; //====================================================================================================================== // OdDgCellHeader3dPropertyFacet class create new static properties of OdDgCellHeader3d element //====================================================================================================================== class OdDgCellHeader3dPropertyFacet : public OdRxClass { public: /** \details Facet RxProperties list builder, calls by OdRxMemberCollectionImpl::collectMembers() when RxMemberQueryEngine creates a new iterator for object's RxProperties. Receives a raw pointer to the OdDgCellHeader3d object in void *pUserData. */ static void makeMembers(OdRxMemberCollectionBuilder& collectionBuilder, void* pUserData); /** \details Empty constructor. */ OdDgCellHeader3dPropertyFacet() {} /** \details Empty destructor. */ virtual ~OdDgCellHeader3dPropertyFacet() {} }; //====================================================================================================================== // OdDgCellHeader3dLinkageSizePropertyFacet class create new dynamic properties of OdDgCellHeader3d element //====================================================================================================================== class OdDgCellHeader3dLinkageSizePropertyFacet : public OdRxClass { public: /** \details Facet RxProperties list builder, calls by OdRxMemberCollectionImpl::collectMembers() when RxMemberQueryEngine creates a new iterator for object's RxProperties. Receives a raw pointer to the OdDgCellHeader3d object in void *pUserData. */ static void makeMembers(OdRxMemberCollectionBuilder& collectionBuilder, void* pUserData); /** \details Empty constructor. */ OdDgCellHeader3dLinkageSizePropertyFacet() {} /** \details Empty destructor. */ virtual ~OdDgCellHeader3dLinkageSizePropertyFacet() {} }; //====================================================================================================================== #endif