DynamoVisualProgramming.ZeroTouchLibrary by Autodesk

<PackageReference Include="DynamoVisualProgramming.ZeroTouchLibrary" Version="4.2.0-beta4716" />

 PolyCurve

public class PolyCurve : Curve
using Autodesk.DesignScript.Geometry.Properties; using Autodesk.DesignScript.Interfaces; using Autodesk.DesignScript.Runtime; using Dynamo.Graph.Nodes; using DynamoServices; using ProtoGeometryGenerator; using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; namespace Autodesk.DesignScript.Geometry { [GenerateFromInterface(typeof(IPolyCurveEntity), typeof(IGeometryFactory), new Type[] { })] public class PolyCurve : Curve { private static readonly Version MinDynamoVersionForInfoMessages = new Version(4, 0, 0, 0); public virtual Point[] Points => Point.Wrap(PolyCurveEntity.get_Points()); public virtual int NumberOfCurves => PolyCurveEntity.get_NumberOfCurves(); internal IPolyCurveEntity PolyCurveEntity => HostImpl as IPolyCurveEntity; public virtual Curve[] Curves() { return Curve.Wrap(PolyCurveEntity.Curves()); } public virtual Curve CurveAtIndex(int index = 0, bool endOrStart = false) { return Curve.Wrap(PolyCurveEntity.CurveAtIndex(index, endOrStart)); } public virtual Plane BasePlane() { return Plane.Wrap(PolyCurveEntity.BasePlane()); } public virtual PolyCurve CloseWithLine() { return Wrap(PolyCurveEntity.CloseWithLine()); } [AllowRankReduction] public virtual Curve[] OffsetMany([Scaling()] double signedDistance, bool extendCircular, [DefaultArgument("null")] Vector planeNormal) { DesignScriptEntity.CheckArgsForAsmExtents(signedDistance); return Curve.Wrap(PolyCurveEntity.OffsetMany(signedDistance / DesignScriptEntity.scaleFactor, extendCircular, Vector.Unwrap(planeNormal))); } public virtual PolyCurve Fillet([Scaling()] double radius = 1, bool clockwise_corners = true) { DesignScriptEntity.CheckArgsForAsmExtents(radius); return Wrap(PolyCurveEntity.Fillet(radius / DesignScriptEntity.scaleFactor, clockwise_corners)); } [AllowRankReduction] [NodeCategory("Create")] public static PolyCurve[] ByGroupedCurves(IEnumerable<Curve> curves, [Scaling()] double joinTolerance = 0.001, bool trimCurves = false, [Scaling()] double trimLength = 0) { string message = string.Format(CultureInfo.InvariantCulture, Resources.PolyCurveDirectionalityInfoMessage, Array.Empty<object>()); LogWarningMessageEvents.OnLogInfoMessage(message, MinDynamoVersionForInfoMessages); DesignScriptEntity.CheckArgsForAsmExtents(joinTolerance, trimLength); return Wrap(HostFactory.Factory.PolyCurveByGroupedCurves(Curve.Unwrap(curves), joinTolerance / DesignScriptEntity.scaleFactor, trimCurves, trimLength / DesignScriptEntity.scaleFactor)); } internal PolyCurve(IPolyCurveEntity host) : base(host) { } internal new static void InitType() { Geometry.RegisterHostType(typeof(IPolyCurveEntity), (IGeometryEntity host) => new PolyCurve(host as IPolyCurveEntity)); } public PolyCurve ExtendWithEllipse([Scaling()] double length, [Scaling()] double radius1, [Scaling()] double radius2, double endEllipseParameter, bool endOrStart) { DesignScriptEntity.CheckArgsForAsmExtents(length, radius1, radius2); return Wrap(PolyCurveEntity.ExtendWithEllipse(length / DesignScriptEntity.scaleFactor, radius1 / DesignScriptEntity.scaleFactor, radius2 / DesignScriptEntity.scaleFactor, endEllipseParameter, endOrStart)); } public PolyCurve ExtendWithArc([Scaling()] double length, [Scaling()] double radius, bool endOrStart) { DesignScriptEntity.CheckArgsForAsmExtents(length, radius); return Wrap(PolyCurveEntity.ExtendWithArc(length / DesignScriptEntity.scaleFactor, radius / DesignScriptEntity.scaleFactor, endOrStart)); } public PolyCurve CloseWithLineAndTangentArcs([Scaling()] double radiusAtStart = 1, [Scaling()] double radiusAtEnd = 1) { DesignScriptEntity.CheckArgsForAsmExtents(radiusAtStart, radiusAtEnd); return Wrap(PolyCurveEntity.CloseWithLineAndTangentArcs(radiusAtStart / DesignScriptEntity.scaleFactor, radiusAtEnd / DesignScriptEntity.scaleFactor)); } [IsVisibleInDynamoLibrary(false)] [IsObsolete("polycurve_offset_deprecated", typeof(Resources))] [Obsolete("This method is deprecated and will be removed in a future version of Dynamo. Use PolyCurve.OffsetMany instead.")] public Curve Offset([Scaling()] double signedDistance, bool extendCircular) { DesignScriptEntity.CheckArgsForAsmExtents(signedDistance); return Curve.Wrap(PolyCurveEntity.Offset(signedDistance / DesignScriptEntity.scaleFactor, extendCircular)); } public PolyCurve Heal([Scaling()] double trimLength = 0) { DesignScriptEntity.CheckArgsForAsmExtents(trimLength); return Wrap(PolyCurveEntity.Heal(trimLength / DesignScriptEntity.scaleFactor)); } [IsVisibleInDynamoLibrary(false)] [IsObsolete("polycurve_byjoinedcurves_deprecated", typeof(Resources))] [Obsolete("This method is deprecated and will be removed in a future version of Dynamo. Use PolyCurve.ByJoinedCurves(Curve[] curves, double joinTolerance, bool trimCurves, double trimLength) instead")] public static PolyCurve ByJoinedCurves(IEnumerable<Curve> curves, [Scaling()] double joinTolerance = 0.001) { string message = string.Format(CultureInfo.InvariantCulture, Resources.PolyCurveDirectionalityInfoMessage, Array.Empty<object>()); LogWarningMessageEvents.OnLogInfoMessage(message, MinDynamoVersionForInfoMessages); DesignScriptEntity.CheckArgsForAsmExtents(joinTolerance); return Wrap(HostFactory.Factory.PolyCurveByJoinedCurves(Curve.Unwrap(curves), joinTolerance / DesignScriptEntity.scaleFactor)); } public static PolyCurve ByJoinedCurves(IEnumerable<Curve> curves, [Scaling()] double joinTolerance = 0.001, bool trimCurves = false, [Scaling()] double trimLength = 0) { string message = string.Format(CultureInfo.InvariantCulture, Resources.PolyCurveDirectionalityInfoMessage, Array.Empty<object>()); LogWarningMessageEvents.OnLogInfoMessage(message, MinDynamoVersionForInfoMessages); DesignScriptEntity.CheckArgsForAsmExtents(joinTolerance, trimLength); return Wrap(HostFactory.Factory.PolyCurveByJoinedCurves(Curve.Unwrap(curves), joinTolerance / DesignScriptEntity.scaleFactor, trimCurves, trimLength / DesignScriptEntity.scaleFactor)); } [IsVisibleInDynamoLibrary(false)] [IsObsolete("polycurve_bygroupedcurves_deprecated", typeof(Resources))] [Obsolete("This method is deprecated and will be removed in a future version of Dynamo. Use PolyCurve.ByGroupedCurves(Curve[] curves, double joinTolerance, bool trimCurves, double trimLength) instead")] [AllowRankReduction] public static PolyCurve[] ByGroupedCurves(IEnumerable<Curve> curves, [Scaling()] double joinTolerance = 0.001) { string message = string.Format(CultureInfo.InvariantCulture, Resources.PolyCurveDirectionalityInfoMessage, Array.Empty<object>()); LogWarningMessageEvents.OnLogInfoMessage(message, MinDynamoVersionForInfoMessages); DesignScriptEntity.CheckArgsForAsmExtents(joinTolerance); return Wrap(HostFactory.Factory.PolyCurveByGroupedCurves(Curve.Unwrap(curves), joinTolerance / DesignScriptEntity.scaleFactor)); } public static PolyCurve ByPoints(IEnumerable<Point> points, bool connectLastToFirst = false) { string message = string.Format(CultureInfo.InvariantCulture, Resources.PolyCurveDirectionalityInfoMessage, Array.Empty<object>()); LogWarningMessageEvents.OnLogInfoMessage(message, MinDynamoVersionForInfoMessages); return Wrap(HostFactory.Factory.PolyCurveByPoints(Point.Unwrap(points), connectLastToFirst)); } [IsVisibleInDynamoLibrary(false)] [IsObsolete("polycurve_bythickeningcurve_depreacted", typeof(Resources))] [Obsolete("This method is deprecated and will be removed in a future version of Dynamo. Use PolyCurve.ByThickeningCurveNormal(Curve curve, double thickness, Vector normal) instead")] public static PolyCurve ByThickeningCurve(Curve curve, [Scaling()] double thickness, Vector nor) { string message = string.Format(CultureInfo.InvariantCulture, Resources.PolyCurveDirectionalityInfoMessage, Array.Empty<object>()); LogWarningMessageEvents.OnLogInfoMessage(message, MinDynamoVersionForInfoMessages); DesignScriptEntity.CheckArgsForAsmExtents(thickness); return Wrap(HostFactory.Factory.PolyCurveByThickeningCurve(Curve.Unwrap(curve), thickness / DesignScriptEntity.scaleFactor, Vector.Unwrap(nor))); } public static PolyCurve ByThickeningCurveNormal(Curve curve, [Scaling()] double thickness, [DefaultArgument("null")] Vector normal) { string message = string.Format(CultureInfo.InvariantCulture, Resources.PolyCurveDirectionalityInfoMessage, Array.Empty<object>()); LogWarningMessageEvents.OnLogInfoMessage(message, MinDynamoVersionForInfoMessages); DesignScriptEntity.CheckArgsForAsmExtents(thickness); return Wrap(HostFactory.Factory.PolyCurveByThickeningCurveNormal(Curve.Unwrap(curve), thickness / DesignScriptEntity.scaleFactor, Vector.Unwrap(normal))); } internal static PolyCurve Wrap(IPolyCurveEntity host) { return Geometry.Wrap(host) as PolyCurve; } internal static PolyCurve[] Wrap(IPolyCurveEntity[] hosts) { return hosts.Select(Wrap).ToArray(); } internal static PolyCurve[][] Wrap(IPolyCurveEntity[][] hosts) { return hosts.Select(Wrap).ToArray(); } internal static IPolyCurveEntity Unwrap(PolyCurve o) { return o.PolyCurveEntity; } internal static IPolyCurveEntity[] Unwrap(IEnumerable<PolyCurve> o) { return o.Select(Unwrap).ToArray(); } internal static IPolyCurveEntity[] Unwrap(PolyCurve[] o) { return o.Select(Unwrap).ToArray(); } internal static IPolyCurveEntity[][] Unwrap(PolyCurve[][] o) { return o.Select(Unwrap).ToArray(); } public override string ToString() { StringBuilder builder = DesignScriptEntity.GetBuilder(); AppendTo(builder); return builder.ToString(); } internal override void AppendTo(StringBuilder builder) { builder.Add("PolyCurve(NumberOfCurves = ", NumberOfCurves).Append(")"); } } }