123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- //////////////////////////////////////////////////////////////////////////////
- //
- // Copyright 2015 Autodesk, Inc. All rights reserved.
- //
- // Use of this software is subject to the terms of the Autodesk license
- // agreement provided at the time of installation or download, or which
- // otherwise accompanies this software in either electronic or hard copy form.
- //
- //////////////////////////////////////////////////////////////////////////////
- //
- // CREATED BY: Jiri Kripac March 2009
- //
- //////////////////////////////////////////////////////////////////////////////
- #pragma once
- #include "AcDbAssocActionParam.h"
- #include "AcDbGeomRef.h"
- #pragma pack (push, 8)
- /// <summary>
- /// Action parameter that keeps reference to a face. It uses AcDbAssocGeomDependency
- /// to define a persistent reference to a face subentity of an AcDbEntity. Alternatively,
- /// it may directly keep the face geometry in the action parameter in the form
- /// of an ASM body, instead of referencing some other AcDbEntity.
- /// </summary>
- ///
- class ACDB_PORT AcDbAssocFaceActionParam : public AcDbAssocActionParam
- {
- public:
- ACRX_DECLARE_MEMBERS(AcDbAssocFaceActionParam);
- /// <summary> Default constructor. </summary>
- /// <param name="createImpObject"> See AcDbAssocCreateImpObject explanation. </param>
- ///
- explicit AcDbAssocFaceActionParam(AcDbAssocCreateImpObject createImpObject = kAcDbAssocCreateImpObject);
- /// <summary><para>
- /// The input AcDbFaceRef is a non-persistent reference to a face geometry,
- /// the AcDbAssocEdgeActionParam will make a persistent reference to that face.
- /// </para><para>
- /// Refer to AcDbAssocGeomDependency class that is used to create a persistent
- /// dependency on the referenced face subentity. If it is constant geometry
- /// in the form of a face of an ASM body, no dependency is created.
- /// </para></summary>
- /// <param name="faceRef">
- /// Reference to a "face" subentity of an entity, or constant geometry in the
- /// form of a face of an ASM body. See AcDbFaceRef for details.
- /// </param>
- /// <param name="isReadDependency"> Read-dependency on the entity should be created. </param>
- /// <param name="isWriteDependency"> Write-dependency on the entity should be created. </param>
- /// <param name="dependencyOrder">
- /// Specifies position of the created dependency in the ordered list of
- /// dependencies on the entity. See AcDbAssocDependency::setOrder(int) method.
- /// </param>
- /// <returns> Acad::ErrorStatus. </returns>
- ///
- virtual Acad::ErrorStatus setFaceRef(const AcDbFaceRef& faceRef, bool isReadDependency = true, bool isWriteDependency = false, int dependencyOrder = 0);
- /// <summary> <para>
- /// Returns references to the transient subentities of an AcDbEntity, that
- /// correspond to the persistent subentity that this face action parameter
- /// references. It can also be a constant geometry in the form of a face of
- /// an ASM body. See AcDbFaceRef for details.
- /// </para><para>
- /// When a single face (such as face of a solid or surface) is referenced by
- /// this AcDbAssocFaceActionParam and some parameters of the solid/surface
- /// are changed and the solid/surface is re-evaluated from its actions, this
- /// single face may then correspond to any number of faces, because the original
- /// face might have gotten split, merged, or even may have disappeared. That
- /// is why the output is an array of FaceRefs, but in typical case the array
- /// will contain just a single element.
- /// </para><para>
- /// Refer to AcDbAssocGeomDependency class that is used to create a persistent
- /// dependency on the referenced face subentity.
- /// </para></summary>
- /// <param name="faceRefs">
- /// References to the transient subentities of an AcDbEntity, that correspond
- /// to the persistent subentity that this face action parameter references.
- /// See AcDbFaceRef for details.
- /// </param>
- /// <returns> Acad::ErrorStatus. </returns>
- ///
- virtual Acad::ErrorStatus getFaceRef(AcArray<AcDbFaceRef>& faceRefs) const;
- /// <summary><para>
- /// Sets new geometry of the referenced subentity of the AcDbEntity the action parameter
- /// depends on via an AcDbAssocDependency or AcDbAssocGeomDependency.
- /// If the action parameter currently references more than one subentity of the AcDbEntity
- /// (e.g. because the original single subentity was split into several subentities),
- /// it returns eNotApplicable. This is because the most common use case is to set the
- /// subentity geometry if only a single subentity is referenced by the action parameter.
- /// </para><para>
- /// If client code needs to set geometry of the individual subentities the action parameter
- /// references, it needs to do it manually through the dependencies of the action parameter.
- /// </para></summary>
- /// <param name="pNewFaceSurface"> New surface of the face subentity (copied, not reused). </param>
- /// <returns> Acad::ErrorStatus. </returns>
- ///
- virtual Acad::ErrorStatus setFaceSubentityGeometry(const AcGeSurface* pNewFaceSurface);
- /// <summary>
- /// If this action parameter depends on an AcDbEntity via an AcDbAssocGeomDependency,
- /// it returns AcDbCompoundObjectId of the entity this dependency depends on.
- /// </summary>
- /// <param name="compoundId">
- /// The AcDbCompoundObjectId of the entity this action parameter depends on,
- /// or an empty compound object id if the action parameter does not depend
- /// on any entity.
- /// </param>
- /// <returns> Acad::ErrorStatus. </returns>
- ///
- Acad::ErrorStatus getDependentOnCompoundObject(AcDbCompoundObjectId& compoundId) const;
- };
- #pragma pack (pop)
|