RebuildCurveOptions

Options used for curve rebuilding

Constructors

RebuildCurveOptions

#Since v9.0
public RebuildCurveOptions()

Finalizer

~RebuildCurveOptions

#
~RebuildCurveOptions()

Properties

CurrentOutputMaximumDeviation

#Since v9.0
public double CurrentOutputMaximumDeviation { get; }
The maximum deviation between a target curve and the corresponding rebuilt curve calculated using the current properties.

CurrentOutputPointCountRange

#Since v9.0
public IndexPair CurrentOutputPointCountRange { get; }
The range of point counts in the rebuilt curves calculated using the current properties. When multiple target curves are being rebuilt with variable point counts or kink splittings, the resulting rebuilt curves can have a range of point counts. CurrentOutputPointCountRange.I = minimum point count. CurrentOutputPointCountRange.J = maximum point count.

CurrentOutputSpanCountRange

#Since v9.0
public IndexPair CurrentOutputSpanCountRange { get; }
The range of span counts in the rebuilt curves calculated using the current properties. When multiple target curves are being rebuilt with variable point counts or kink splittings, the resulting rebuilt curves can have a range of span counts. CurrentOutputSpanCountRange.I = minimum span count. CurrentOutputSpanCountRange.J = maximum span count. NOTE WELL: Do not confuse span counts with point counts. The span count is always <= PointCount - Degree and is the number of spans in the rebuilt NURBS curves.

Degree

#Since v9.0
public int Degree { get; set; }
The degree the rebuit curves will have. Changing the degree can change other options. After changing the degre, user interface code must update all displayed values.

DeleteInputCurves

#Since v9.0
public bool DeleteInputCurves { get; set; }
True if input target curves should be deleted when possible.

InputCurveCount

#Since v9.0
public int InputCurveCount { get; }
The number of input curves.

InputDegreeRange

#Since v9.0
public IndexPair InputDegreeRange { get; }
The range of degrees in the input curves. InputDegreeRange.I = minimum input curve degree. InputDegreeRange.J = maximum input curve degree.

InputPointCountRange

#Since v9.0
public IndexPair InputPointCountRange { get; }
The range of point counts in the input curves. InputPointCountRange.I = minimum input curve point count. InputPointCountRange.J = maximum input curve point count.

InputSpanCountRange

#Since v9.0
public IndexPair InputSpanCountRange { get; }
The range of span counts in the input curves. InputDegreeRange.I = minimum input curve span count. InputDegreeRange.J = maximum input curve span count.

KinkAngleDegrees

#Since v9.0
public double KinkAngleDegrees { get; set; }
If the KinkSplitting is on, then KinkAngleDegrees is the angle in degrees used to detect discontinuous changes in target curve tangents and curvature directions.

KinkSplitting

#Since v9.0
public RebuildCurveKinkSplitting KinkSplitting { get; set; }

KinkSplittingPermitted

#Since v9.0
public bool KinkSplittingPermitted { get; set; }
True if the user interface is permitted to show the kink splitting options

MaximumDegreeLimit

#Since v9.0
public int MaximumDegreeLimit { get; }
The maximum value a user interface may specify as a degree value.

MaximumPointCount

#Since v9.0
public int MaximumPointCount { get; }
The maximum point count. If the context permits ranges of point counts, then it is possible that MinimumPointCount < MaximumPointCount. Otherwise MinimumPointCount = MaximumPointCount = PointCount.

MaximumPointCountLimit

#Since v9.0
public int MaximumPointCountLimit { get; }
The maximum value a user interface may specify as a point count value.

MinimumDegreeLimit

#Since v9.0
public int MinimumDegreeLimit { get; }
The mimimum value a user interface may specify as a degree value.

MinimumPointCount

#Since v9.0
public int MinimumPointCount { get; }
The minimum point count. If the context permits ranges of point counts, then it is possible that MinimumPointCount < MaximumPointCount. Otherwise MinimumPointCount = MaximumPointCount = PointCount.

MinimumPointCountLimit

#Since v9.0
public int MinimumPointCountLimit { get; }
The mimimum value a user interface may specify as a point count value.

OutputToCurrentLayer

#Since v9.0
public bool OutputToCurrentLayer { get; set; }
True if output rebuilt curves should be on the current layer. False if output rebuild curves should be on the target curve's layer.

PointCount

#Since v9.0
public int PointCount { get; set; }
Always sets the number of control points in the rebuilt curve. If PointCountRangePermitted is true or the minimum and maximum point counts are equal, that value is returned. Otherwise 0 is returned and you must use MinimumPointCount and MaximumPointCount to get the point count range. Put another way, when 0 is returned, a range of point counts has been specified and you must use MinimumPointCount and MaximumPointCount to get the point count range.

PointCountRangePermitted

#Since v9.0
public bool PointCountRangePermitted { get; }
If user interface is permitted to set a range of point counts, then PointCountRangePermitted = true and SetPointCountRange() may be used to set the range. Otherwise point count ranges are not permitted\ and user interface must use PointCount to set a single value.

PointCountRangeTolerance

#Since v9.0
public double PointCountRangeTolerance { get; }
When PointCountRangePermitted is true and MinimumPointCount < MaximumPointCount, PointCountRangeTolerance specifies the desired maximum deviation between the target and rebuilt curves. If there is a rebuilt curve in the point count range with deviation <= PointCountRangeTolerance, then the rebuilt curve with the smallest point count whose deviation <= tolerance is returned. Otherwise the curve with the smallest deviation is returned. Use SetPointCountRange(min,max,tol) to set PointCountRangeTolerance.

RhinoDocumentSerialNumber

#Since v9.0
public int RhinoDocumentSerialNumber { get; }
Serial number of the Rhino document containing the target curves.

ShowControlPoints

#Since v9.0
public bool ShowControlPoints { get; set; }
True if the control points of the rebuilt curves are displayed during the dynamic preview.

SmoothingIntensity

#Since v9.0
public RebuildCurveIntensity SmoothingIntensity { get; set; }
When SmoothingPermitted is true, SmoothingIntensity sets and gets the intensity of forcing the 2nd point of contiguous triples of control points to be halfway between the 1st and 3rd point.

SmoothingPermitted

#Since v9.0
public bool SmoothingPermitted { get; }
True if the user interface is permitted to show the smoothing intensity option

SubDFriendly

#Since v9.0
public bool SubDFriendly { get; set; }
When SubDFriendly is true, the degree is set to 3 and the ends of rebuilt open curves have zero 2nd derivative. These types of curves are useful for lofting into SubDs.

TangentMatching

#Since v9.0
public RebuildCurveTangentMatching TangentMatching { get; set; }
When TangentMatchPermitted is true, TangentMatch is the active tangent mathing option. When TangentMatchPermitted is false, the user interface should not offer tangent matching.

TangentMatchingPermitted

#Since v9.0
public bool TangentMatchingPermitted { get; }
Returns true if the user interface may offer tangent matching as an option.

UniformityIntensity

#Since v9.0
public RebuildCurveIntensity UniformityIntensity { get; set; }
When UniformityPermitted is true, UniformityIntensity sets and gets the intensity of forcing the the distance between control points to be equal.

UniformityPermitted

#Since v9.0
public bool UniformityPermitted { get; }
True if the user interface is permitted to show the uniformity intensity option

Methods

CalculateInitialPreview

#Since v9.0
public void CalculateInitialPreview()
When the rebuild options are presented in a dialog, the initial rebuild calculation is deferred so that the dialog appears immediately instead of after that calculation finishes. The dialog calls this one time, after it is on the screen, and the initial calculation and the first dynamic preview happen then. The dialog must update itself from these options when this returns. The calculation fills in the current output properties and it can increase the point count when kink splitting needs more points than the current settings specify. Calling this when no initial calculation is pending does nothing.

Dispose

#Since v9.0
public void Dispose()
Actively reclaims unmanaged resources that this instance uses.

IntensityToInt

#Since v9.0
public int IntensityToInt(RebuildCurveIntensity intensity)
intensity (RebuildCurveIntensity)

IntToIntensity

#Since v9.0
public RebuildCurveIntensity IntToIntensity(int intensity_as_int)
intensity_as_int (int)

IntToKinkSplitting

#Since v9.0
public RebuildCurveKinkSplitting IntToKinkSplitting(int kink_splitting_at_as_int)
kink_splitting_at_as_int (int)

KinkSplittingToInt

#Since v9.0
public int KinkSplittingToInt(RebuildCurveKinkSplitting kink_splitting)
kink_splitting (RebuildCurveKinkSplitting)

SetPointCountRange

#Since v9.0
public void SetPointCountRange(int minimum_point_count, int maximum_point_count, double tolerance)
If PointCountRangePermitted is true, then the user interface may use SetPointCountRange(min,max,tolerance) to specify a range of acceptable point counts. Otherwise using PointCount to specify a single point count value.
minimum_point_count (int)
maximum_point_count (int)
tolerance (double)If tolerance > 0 and there is a rebuilt curve in the point range with deviation <= tolerance, the the curve with the smallest point count whose deviation <= tolerance will be returned. Otherwise the curve with the smallest deviation is returned.