NaughtyCurveCurveAssistant

CurveAssistant<1>

Properties

IsReimplementation

public bool IsReimplementation { get; }
Gets whether or not this assistant is a type-safe re-implementation of a more generic assistant.
inherited fromCurveAssistant<T>
IsReimplementation

ReimplementationBase

public ICurveAssistant ReimplementationBase { get; }
Gets the base assistant (if any) this assistant is a re-implementation of.
inherited fromCurveAssistant<T>

Type

public Type Type { get; }
Gets the type associated with this assistant.
inherited fromCurveAssistant<T>
Type

Methods

BoundingBox

#
public override BoundingBox BoundingBox(NaughtyCurve instance)
instance (NaughtyCurve)

ConvertToNurbsCurve

public virtual NurbsCurve ConvertToNurbsCurve(T instance)
Convert the instance into a Rhino NURBS curve type which best describes the original instance. Note this method need not return a duplicate of the input, if a duplicate is required by the caller then a ReferenceEquals check must be performed.
inherited fromCurveAssistant<T>
instance (T)Instance to convert.
A Rhino NURBS curve or null if there is no way to describe the curve geometry as NURBS.

ConvertToPolyline

public virtual Polyline ConvertToPolyline(T instance, double deviation, double angle)
Convert the instance into a polyline.
inherited fromCurveAssistant<T>
instance (T)Instance to convert.
deviation (double)Maximum allowed deviation (absolute tolerance) between original curve and resulting polyline.
angle (double)Maximum allowed angle between original curve tangents and polyline corners.

ConvertToRhinoCurve

#
public override Curve ConvertToRhinoCurve(NaughtyCurve instance)
instance (NaughtyCurve)

DivideByCount

#
public override double[] DivideByCount(NaughtyCurve instance, int count)
instance (NaughtyCurve)
count (int)

DivideByDistance

#
public override double[] DivideByDistance(NaughtyCurve instance, double distance)
instance (NaughtyCurve)
distance (double)

DivideByLength

#
public override double[] DivideByLength(NaughtyCurve instance, double length)
instance (NaughtyCurve)
length (double)

EvaluateCurvature

#
public override Vector3d EvaluateCurvature(NaughtyCurve instance, double parameter, CurveEvaluationSide side)
instance (NaughtyCurve)
parameter (double)
side (CurveEvaluationSide)

EvaluateDerivatives

#
public override Vector3d[] EvaluateDerivatives(NaughtyCurve instance, double parameter, CurveEvaluationSide side, int count)
instance (NaughtyCurve)
parameter (double)
side (CurveEvaluationSide)
count (int)

EvaluatePerpendicular

#
public override Plane EvaluatePerpendicular(NaughtyCurve instance, double parameter, CurveEvaluationSide side)
instance (NaughtyCurve)
parameter (double)
side (CurveEvaluationSide)

EvaluatePosition

#
public override Point3d EvaluatePosition(NaughtyCurve instance, double parameter)
instance (NaughtyCurve)
parameter (double)

EvaluateTangent

#
public override Vector3d EvaluateTangent(NaughtyCurve instance, double parameter, CurveEvaluationSide side)
instance (NaughtyCurve)
parameter (double)
side (CurveEvaluationSide)

Explode

public virtual object[] Explode(T instance)
Explode a curve into smaller segments, each representing a subtype of curve.
inherited fromCurveAssistant<T>
instance (T)Instance.
Array of subcurves.

ExplodeRecursive

public virtual object[] ExplodeRecursive(T instance)
Explode a curve into the smallest possible segments.
inherited fromCurveAssistant<T>
instance (T)Instance.
Array of subcurves.

Extend

public virtual object Extend(T instance, CurveExtension start, CurveExtension end)
Extend the curve.
inherited fromCurveAssistant<T>
instance (T)Instance of T.
start (CurveExtension)Extension properties at start.
end (CurveExtension)Extension properties at end.
Modified curve.

FindClosestParameter

#
public override double FindClosestParameter(NaughtyCurve instance, Point3d point)
instance (NaughtyCurve)
point (Point3d)

FindCurvatureExtremes

public virtual void FindCurvatureExtremes(T instance, out double minimum, out double maximum)
Find the two parameters with the lowest and highest curvature.
inherited fromCurveAssistant<T>
instance (T)Instance.
minimum (out double)The (or one of the) parameters on the curve with the lowest curvature.
maximum (out double)The (or one of the) parameters on the curve with the highest curvature.

FindDiscontinuities

public virtual Discontinuity[] FindDiscontinuities(T instance, DiscontinuityLevel order)
Find all discontinuities along the curve up to and including a target continuity type.
inherited fromCurveAssistant<T>
instance (T)Instance.
order (DiscontinuityLevel)Maximum continuity order to search for.
Array of curve discontinuities.

FindFurthestParameter

public virtual double FindFurthestParameter(T instance, Point3d point)
Find the point on the curve furthest from a test point.
inherited fromCurveAssistant<T>
instance (T)Instance of T.
point (Point3d)Test point.
Parameter or double.NaN if no parameter could be found.

FindInflections

public virtual double[] FindInflections(T instance)
Find all inflection points along the curve.
inherited fromCurveAssistant<T>
instance (T)Instance.
Array of curve parameters.

FindPositionExtremes

public virtual void FindPositionExtremes(T instance, Plane plane, out double minimum, out double maximum)
Find the two parameters closest to and furthest away from a plane.
inherited fromCurveAssistant<T>
instance (T)Instance.
plane (Plane)Plane.
minimum (out double)The (or one of the) parameters on the curve closest to the plane.
maximum (out double)The (or one of the) parameters on the curve furthest from the plane.

FlipDirection

public virtual object FlipDirection(T instance)
Flip the curve.
inherited fromCurveAssistant<T>
instance (T)Instance to flip.
Flipped curve.

GetDomain

public virtual Interval GetDomain(T instance)
Get the domain of an instance of T.
inherited fromCurveAssistant<T>
instance (T)Instance of T.
Domain of curve.

GetEndPoints

public virtual void GetEndPoints(T instance, out Point3d start, out Point3d end)
Get the end-points of a curve.
inherited fromCurveAssistant<T>
instance (T)Instance.
start (out Point3d)Point at start.
end (out Point3d)Point at end.

GetEndTangents

public virtual void GetEndTangents(T instance, out Vector3d start, out Vector3d end)
Get the tangents at the ends of a curve.
inherited fromCurveAssistant<T>
instance (T)Instance.
start (out Vector3d)Tangent at start.
end (out Vector3d)Tangent at end.

GetLength

public virtual double GetLength(T instance)
Measure the total length of this curve.
inherited fromCurveAssistant<T>
instance (T)Instance.
Length.

GetSpans

public virtual Interval[] GetSpans(T instance)
Gets an array of curve domain spans. A span is a section of the curve that is reasonably simple in shape. Discontinuities in curves typically signal transitions from one span to another, but it depends on the curve type how it divides itself up.
inherited fromCurveAssistant<T>
instance (T)Instance.
Span domains.

IntersectWith

public virtual double[] IntersectWith(T instance, Plane plane)
Find all the intersection parameters between this curve and a plane.
inherited fromCurveAssistant<T>
instance (T)Curve.
plane (Plane)Plane.
Collection of zero or more curve parameters.

IsClosed

#
public override bool IsClosed(NaughtyCurve instance)
instance (NaughtyCurve)

IsLinear

public virtual bool IsLinear(T instance, double tolerance)
Determine whether the curve is linear.
inherited fromCurveAssistant<T>
instance (T)Instance.
tolerance (double)Maximum allowed linearity deviation.
True if curve is linear.

IsLinear

public virtual void IsLinear(T instance, out Line line, out double deviation)
Determine the best fit line for this curve.
inherited fromCurveAssistant<T>
instance (T)Instance.
line (out Line)Line which best approximates curve.
deviation (out double)Maximum deviation from line.

IsPeriodic

public virtual bool IsPeriodic(T instance)
Determine whether the curve is periodic.
inherited fromCurveAssistant<T>
instance (T)Instance of T.
Boolean value indicating periodicity.

IsPlanar

public virtual bool IsPlanar(T instance, double tolerance)
Determine whether the curve is planar.
inherited fromCurveAssistant<T>
instance (T)Instance of T.
tolerance (double)Maximum allowed planarity deviation.
Boolean value indicating planarity.

IsPlanar

public virtual void IsPlanar(T instance, out Plane plane, out double deviation)
Determine the best fit plane for this curve.
inherited fromCurveAssistant<T>
instance (T)Instance of T.
plane (out Plane)Plane of curve or Plane.None if curve is not planar.
deviation (out double)Maximum deviation from plane.

LengthAtParameter

#
public override bool LengthAtParameter(NaughtyCurve instance, double parameter, out double length)
instance (NaughtyCurve)
parameter (double)
length (out double)

ParameterAtLength

#
public override bool ParameterAtLength(NaughtyCurve instance, double length, out double parameter)
instance (NaughtyCurve)
length (double)
parameter (out double)

SetDomain

public virtual object SetDomain(T instance, Interval domain)
Assign a new parameter domain to the curve.
inherited fromCurveAssistant<T>
instance (T)Instance.
domain (Interval)New domain to assign.
Curve with new domain.

Split

public virtual void Split(T instance, double parameter, out object below, out object above)
Split a curve into two parts.
inherited fromCurveAssistant<T>
instance (T)Instance.
parameter (double)Splitting parameter.
below (out object)Part from start of curve to parameter.
above (out object)Part from parameter to end of curve.

Trim

public virtual object Trim(T instance, Interval domain)
Extract a subcurve from an instance of T.
inherited fromCurveAssistant<T>
instance (T)Instance of T.
domain (Interval)Domain of subcurve.
Sub curve.