Type parameters:
| T | Type to assist. |
Constructors
CurveAssistant
#protected CurveAssistant()
Abstract constructor, assigns Type and TypeId fields based on T.
Properties
IsReimplementation
#Gets whether or not this assistant is a type-safe re-implementation of a more generic assistant.
Implements: IsReimplementation
ReimplementationBase
#Gets the base assistant (if any) this assistant is a re-implementation of.
Implements: ReimplementationBase
Methods
BoundingBox
#Gets the bounding box of a curve.
Parameters:
| instance (T) | Curve instance. |
Returns: World axis aligned bounding box.
ConvertToNurbsCurve
#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.
Parameters:
| instance (T) | Instance to convert. |
Returns: A Rhino NURBS curve or null if there is no way to describe the curve geometry as NURBS.
ConvertToPolyline
#Convert the instance into a polyline.
ConvertToRhinoCurve
#Convert the instance into a Rhino 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.
Parameters:
| instance (T) | Instance to convert. |
Returns: A Rhino curve or null if there is no Rhino curve type which remotely describes this instance of T.
DivideByCount
#Divide the curve into a number of equal length segments.
Parameters:
| instance (T) | Instance. |
| count (int) | Number of segments. |
Returns: Array of division parameters, including the start and end of the domain.
DivideByDistance
#Divide a curve into segments whose end-points are a fixed distance apart.
Parameters:
| instance (T) | Instance. |
| distance (double) | Distance between segment start and end-points. |
Returns: Array of division parameters. The parameter at the end of the domain is not included if there's a remainder segment.
DivideByLength
#Divide the curve into equal length segments.
Parameters:
| instance (T) | Instance. |
| length (double) | Tier length. |
Returns: Array of division parameters. The parameter at the end of the domain is not included if there's a remainder segment.
EvaluateCurvature
#Evaluate the curvature of the curve at the given parameter.
Parameters:
| instance (T) | Instance of T. |
| parameter (double) | Curve parameter. |
| side (CurveEvaluationSide) | Side of parameter to evaluate. |
Returns: Curvature at parameter, or Vector3d.None if the curve cannot be evaluated at the given parameter.
EvaluateDerivatives
#public virtual Vector3d[] EvaluateDerivatives(T instance, double parameter, CurveEvaluationSide side, int count)
Evaluate the first N derivatives of the curve at the given parameter.
Parameters:
| instance (T) | Instance of T. |
| parameter (double) | Curve parameter. |
| side (CurveEvaluationSide) | Side of parameter to evaluate. |
| count (int) | Number of derivatives to compute. |
Returns: An array of N+1 derivatives, where the first element describes the position vector.
EvaluatePerpendicular
#Evaluate the perpendicular plane of the curve at the given parameter.
Parameters:
| instance (T) | Instance of T. |
| parameter (double) | Curve parameter. |
| side (CurveEvaluationSide) | Side of parameter to evaluate. |
Returns: Perpendicular at parameter, or Plane.None if the curve cannot be evaluated at the given parameter.
EvaluatePosition
#Evaluate the position of the curve at the given parameter.
Parameters:
| instance (T) | Instance of T. |
| parameter (double) | Curve parameter. |
Returns: Point at parameter, or Point3d.None if the curve cannot be evaluated at the given parameter.
EvaluateTangent
#Evaluate the tangent of the curve at the given parameter.
Parameters:
| instance (T) | Instance of T. |
| parameter (double) | Curve parameter. |
| side (CurveEvaluationSide) | Side of parameter to evaluate. |
Returns: Tangent at parameter, or Vector3d.None if the curve cannot be evaluated at the given parameter.
Explode
#Explode a curve into smaller segments, each representing a subtype of curve.
Parameters:
| instance (T) | Instance. |
Returns: Array of subcurves.
ExplodeRecursive
#Explode a curve into the smallest possible segments.
Parameters:
| instance (T) | Instance. |
Returns: Array of subcurves.
Extend
#Extend the curve.
Parameters:
| instance (T) | Instance of T. |
| start (CurveExtension) | Extension properties at start. |
| end (CurveExtension) | Extension properties at end. |
Returns: Modified curve.
FindClosestParameter
#Find the point on the curve closest to a test point.
Parameters:
| instance (T) | Instance of T. |
| point (Point3d) | Test point. |
Returns: Parameter or double.NaN if no parameter could be found.
FindCurvatureExtremes
#Find the two parameters with the lowest and highest curvature.
FindDiscontinuities
#Find all discontinuities along the curve up to and including a target continuity type.
Parameters:
| instance (T) | Instance. |
| order (DiscontinuityLevel) | Maximum continuity order to search for. |
Returns: Array of curve discontinuities.
FindFurthestParameter
#Find the point on the curve furthest from a test point.
Parameters:
| instance (T) | Instance of T. |
| point (Point3d) | Test point. |
Returns: Parameter or double.NaN if no parameter could be found.
FindInflections
#Find all inflection points along the curve.
Parameters:
| instance (T) | Instance. |
Returns: Array of curve parameters.
GetDomain
#Get the domain of an instance of T.
Parameters:
| instance (T) | Instance of T. |
Returns: Domain of curve.
GetEndPoints
#Get the end-points of a curve.
GetEndTangents
#Get the tangents at the ends of a curve.
GetSpans
#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.
Parameters:
| instance (T) | Instance. |
Returns: Span domains.
Parameters:
| instance (object) |
Implements: BoundingBox
Parameters:
| instance (object) |
Implements: ConvertToNurbsCurve
Implements: ConvertToPolyline
Parameters:
| instance (object) |
Implements: ConvertToRhinoCurve
Implements: DivideByCount
Implements: DivideByDistance
Implements: DivideByLength
Vector3d ICurveAssistant.EvaluateCurvature(object instance, double parameter, CurveEvaluationSide side)
Parameters:
| instance (object) | |
| parameter (double) | |
| side (CurveEvaluationSide) |
Implements: EvaluateCurvature
Vector3d[] ICurveAssistant.EvaluateDerivatives(object instance, double parameter, CurveEvaluationSide side, int count)
Parameters:
| instance (object) | |
| parameter (double) | |
| side (CurveEvaluationSide) | |
| count (int) |
Implements: EvaluateDerivatives
Plane ICurveAssistant.EvaluatePerpendicular(object instance, double parameter, CurveEvaluationSide side)
Parameters:
| instance (object) | |
| parameter (double) | |
| side (CurveEvaluationSide) |
Implements: EvaluatePerpendicular
Implements: EvaluatePosition
Vector3d ICurveAssistant.EvaluateTangent(object instance, double parameter, CurveEvaluationSide side)
Parameters:
| instance (object) | |
| parameter (double) | |
| side (CurveEvaluationSide) |
Implements: EvaluateTangent
Parameters:
| instance (object) |
Implements: ExplodeRecursive
Parameters:
| instance (object) | |
| start (CurveExtension) | |
| end (CurveExtension) |
Implements: Extend
Implements: FindClosestParameter
Implements: FindCurvatureExtremes
Parameters:
| instance (object) | |
| order (DiscontinuityLevel) |
Implements: FindDiscontinuities
Implements: FindFurthestParameter
Parameters:
| instance (object) |
Implements: FindInflections
void ICurveAssistant.FindPositionExtremes(object instance, Plane plane, out double minimum, out double maximum)
Implements: FindPositionExtremes
Parameters:
| instance (object) |
Implements: FlipDirection
Implements: GetEndPoints
Implements: GetEndTangents
Implements: IntersectWith
Parameters:
| instance (object) |
Implements: IsPeriodic
Implements: LengthAtParameter
Implements: ParameterAtLength
IntersectWith
#Find all the intersection parameters between this curve and a plane.
Parameters:
| instance (T) | Curve. |
| plane (Plane) | Plane. |
Returns: Collection of zero or more curve parameters.
IsClosed
#Determine whether the curve is closed.
Parameters:
| instance (T) | Instance of T. |
Returns: Boolean value indicating closedness.
IsLinear
#Determine whether the curve is linear.
Parameters:
| instance (T) | Instance. |
| tolerance (double) | Maximum allowed linearity deviation. |
Returns: True if curve is linear.
IsLinear
#Determine the best fit line for this curve.
IsPeriodic
#Determine whether the curve is periodic.
Parameters:
| instance (T) | Instance of T. |
Returns: Boolean value indicating periodicity.
IsPlanar
#Determine whether the curve is planar.
Parameters:
| instance (T) | Instance of T. |
| tolerance (double) | Maximum allowed planarity deviation. |
Returns: Boolean value indicating planarity.
IsPlanar
#Determine the best fit plane for this curve.
LengthAtParameter
#Gets the length from the start of the curve to the given parameter.
ParameterAtLength
#Get the parameter of a curve at a given length from the start.
SetDomain
#Assign a new parameter domain to the curve.
Parameters:
| instance (T) | Instance. |
| domain (Interval) | New domain to assign. |
Returns: Curve with new domain.
Split
#Split a curve into two parts.