DynamoVisualProgramming.ZeroTouchLibrary by Autodesk

<PackageReference Include="DynamoVisualProgramming.ZeroTouchLibrary" Version="4.2.0.5855" />

 NurbsCurve

public class NurbsCurve : Curve
using Autodesk.DesignScript.Interfaces; using ProtoGeometryGenerator; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Autodesk.DesignScript.Geometry { [GenerateFromInterface(typeof(INurbsCurveEntity), typeof(IGeometryFactory), new Type[] { })] public class NurbsCurve : Curve { internal INurbsCurveEntity NurbsCurveEntity => HostImpl as INurbsCurveEntity; public int Degree => NurbsCurveEntity.get_Degree(); public bool IsPeriodic => NurbsCurveEntity.get_IsPeriodic(); public bool IsRational => NurbsCurveEntity.get_IsRational(); internal NurbsCurve(INurbsCurveEntity host) : base(host) { } internal new static void InitType() { Geometry.RegisterHostType(typeof(INurbsCurveEntity), (IGeometryEntity host) => new NurbsCurve(host as INurbsCurveEntity)); } public Point[] ControlPoints() { return Point.Wrap(NurbsCurveEntity.ControlPoints()); } public Point[] PeriodicControlPoints() { return Point.Wrap(NurbsCurveEntity.PeriodicControlPoints()); } public double[] Knots() { return NurbsCurveEntity.Knots(); } public double[] PeriodicKnots() { return NurbsCurveEntity.PeriodicKnots(); } public double[] Weights() { return NurbsCurveEntity.Weights(); } public static NurbsCurve ByControlPoints(IEnumerable<Point> points) { return Wrap(HostFactory.Factory.NurbsCurveByControlPoints(Point.Unwrap(points))); } public static NurbsCurve ByControlPoints(IEnumerable<Point> points, int degree = 3) { return Wrap(HostFactory.Factory.NurbsCurveByControlPoints(Point.Unwrap(points), degree)); } public static NurbsCurve ByControlPoints(IEnumerable<Point> points, int degree = 3, bool closeCurve = false) { return Wrap(HostFactory.Factory.NurbsCurveByControlPoints(Point.Unwrap(points), degree, closeCurve)); } public static NurbsCurve ByControlPointsWeightsKnots(IEnumerable<Point> points, double[] weights, double[] knots, int degree = 3) { return Wrap(HostFactory.Factory.NurbsCurveByControlPointsWeightsKnots(Point.Unwrap(points), weights, knots, degree)); } public static NurbsCurve ByPoints(IEnumerable<Point> points) { return Wrap(HostFactory.Factory.NurbsCurveByPoints(Point.Unwrap(points))); } public static NurbsCurve ByPoints(IEnumerable<Point> points, bool closeCurve = false) { return Wrap(HostFactory.Factory.NurbsCurveByPoints(Point.Unwrap(points), closeCurve)); } public static NurbsCurve ByPoints(IEnumerable<Point> points, int degree = 3) { return Wrap(HostFactory.Factory.NurbsCurveByPoints(Point.Unwrap(points), degree)); } public static NurbsCurve ByPointsTangents(IEnumerable<Point> points, Vector startTangent, Vector endTangent) { return Wrap(HostFactory.Factory.NurbsCurveByPointsTangents(Point.Unwrap(points), Vector.Unwrap(startTangent), Vector.Unwrap(endTangent))); } internal static NurbsCurve Wrap(INurbsCurveEntity host) { if (host != null) return new NurbsCurve(host); return null; } internal static NurbsCurve[] Wrap(INurbsCurveEntity[] hosts) { return hosts.Select(Wrap).ToArray(); } internal static NurbsCurve[][] Wrap(INurbsCurveEntity[][] hosts) { return hosts.Select(Wrap).ToArray(); } internal static INurbsCurveEntity Unwrap(NurbsCurve o) { return o.NurbsCurveEntity; } internal static INurbsCurveEntity[] Unwrap(IEnumerable<NurbsCurve> o) { return o.Select(Unwrap).ToArray(); } internal static INurbsCurveEntity[] Unwrap(NurbsCurve[] o) { return o.Select(Unwrap).ToArray(); } internal static INurbsCurveEntity[][] Unwrap(NurbsCurve[][] 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("NurbsCurve(Degree = ", Degree).Append(")"); } } }