12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- //////////////////////////////////////////////////////////////////////////////
- //
- // 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: Pei Zhan May 2009
- //
- //////////////////////////////////////////////////////////////////////////////
- #pragma once
- #include "AcDbAssocPathBasedSurfaceActionBody.h"
- #pragma pack (push, 8)
- /// <summary>
- /// Action that sets the contents of AcDbSurface created by edge extension, this action can works
- /// for both the extend modes: 1. append mode and it is a creation action, a new surface is created
- /// by extending given edges of the input surface. The surface will update itself when input surface
- /// is modified. In this mode, the action can be fully associative or semi-associative. if fully
- /// associative, the resulting surface will always automatically regenerate when any input data is changed.
- /// If semi-associative, when input surfaces are detached from the resulting surface, this action will be
- /// erased and the resulting surface will not regenerate and become a generic surface.
- /// 2. merge mode as a modification action, instead of creating a new surface, this action modifies
- /// the input surface by extending its given edges.
- /// </summary>
- ///
- class ACDB_PORT AcDbAssocExtendSurfaceActionBody : public AcDbAssocPathBasedSurfaceActionBody
- {
- public:
- ACRX_DECLARE_MEMBERS(AcDbAssocExtendSurfaceActionBody);
- /// <summary> Default constructor. </summary>
- /// <param name="createImpObject"> See AcDbAssocCreateImpObject explanation. </param>
- ///
- explicit AcDbAssocExtendSurfaceActionBody(AcDbAssocCreateImpObject createImpObject = kAcDbAssocCreateImpObject);
- /// <summary><para>
- /// Set extension distance
- /// </para><para>
- /// the same parameter can be set through class AcDbAssocAction by calling method
- /// setValueParam with name "kExtendDistanceParamName".
- /// </para></summary>
- /// <param name="distance"> New value of the extension distance, must be positive. </param>
- /// <param name="expression"> Expression of the parameter, if the value is controlled by other parameters</param>
- /// <param name="evaluatorId"> The id of the expression evaluator that is used to parse the expression, if an expression is used. </param>
- /// <returns> Acad::ErrorStatus. </returns>
- ///
- Acad::ErrorStatus setDistance(double distance, const AcString& expression = AcString(),
- const AcString& evaluatorId = AcString());
- /// <summary><para>
- /// Get extension distance and its possible expression
- /// </para><para>
- /// the same parameter can be accessed through class AcDbAssocAction by calling method
- /// getValueParam with name "kExtendDistanceParamName".
- /// </para></summary>
- /// <param name="expression"> Expression of the parameter, empty string if no expression is being used. </param>
- /// <param name="evaluatorId"> The id of the expression evaluator that is used to parse the expression, empty string if no expression is being used </param>
- /// <returns> Extension distance. </returns>
- ///
- double distance(AcString& expression = dummyString(), AcString& evaluatorId = dummyString()) const;
- /// <summary>
- /// Create an instance of AcDbAssocExtendSurfaceActionBody
- /// </summary>
- /// <param name="resultingSurfaceId"> Resulting surface id, in append mode, it will ge the new surface id, for merge mode, it should be the id of the input surface. </param>
- /// <param name="extendEdges"> Extension edges of input surface. </param>
- /// <param name="distance"> Extension distance. </param>
- /// <param name="option"> Extension options, specify the mode of extend operation (append, merge etc.), it should be the same as argument "extOption" in AcDbSurface::extendEdges(). </param>
- /// <param name="bEnabled"> Specify if the action is fully associative. Only applies in append mode. If True, the resulting surface will
- /// <param name="createdActionId"> Id of created action. </param>
- /// always automatically regenerate itself when any input surfaces are changed. If false, it will be
- /// non-associative, which means when input surfaces are detached from the resulting surface, this
- /// action will be erased and the resulting surface will not regenerate and become a generic surface. </param>
- /// <returns> Acad::ErrorStatus. </returns>
- ///
- static Acad::ErrorStatus createInstance( const AcDbObjectId& resultingSurfaceId,
- const AcArray<AcDbEdgeRef>& extendEdges,
- double distance,
- AcDbSurface::EdgeExtensionType option,
- bool bEnabled,
- AcDbObjectId& createdActionId );
- }; // class AcDbAssocExtendSurfaceActionBody
- #pragma pack (pop)
|