Click or drag to resize

CurveKinkDefinition Class

A "kink" in a curve is a unit tangent discontinuity or a vector curvature discontinuity. This class is used to determine which types and magnitudes of unit tangent discontinuities and vector curvature discontinuities should are a "kink." It also provides functions for determining if there is a kink at a specific curve parameter.
Inheritance Hierarchy
SystemObject
  Rhino.GeometryCurveKinkDefinition

Namespace:  Rhino.Geometry
Assembly:  RhinoCommon (in RhinoCommon.dll)
Syntax
public class CurveKinkDefinition : IDisposable

The CurveKinkDefinition type exposes the following members.

Constructors
  NameDescription
Public methodCurveKinkDefinition
Construct a new instance with default values.
Public methodCurveKinkDefinition(Double, Double, Boolean, Boolean)
Create a CurveKinkDefinition with specified settings.
Top
Properties
  NameDescription
Public propertyCurvatureKinkRadiusRatio
If the ratio (minimum radius of curvature)/(maximum radius of curvature) at a curvature discontinuity is < CurvatureKinkRadiusRatio, then that curvature discontinuity is treated as a kink. In particular, if CurvatureKinkRadiusRatio = 0, then curvature radius discontinuity checks are disabled.
Public propertyCurvatureKinkZeroTolerance
If the curvature <= CurvatureKinkZeroTolerance, then it is treated as zero curvature. Put another way, if (radius of curvature) * CurvatureKinkZeroTolerance >= 1, then the radius is treated as infinite. If CurvatureKinkZeroTolerance > 0, then the curvature kink test is scale dependent. If CurvatureKinkZeroTolerance = 0, then the curvature kink test is indpendent of scale.
Public propertyKinkAngleDegrees
The angle, in degrees, used to determine if when an abrupt change in tangent or curvature vector direction is a kink.
Public propertyKinkAtCurvatureChange
Returns true if curvature discontinuities should be tested when finding kinks. The angle used vector curvature direction discontinuities is KinkAngleDegrees(). The ratio used for radius of curvature discontinuities is CurvatureKinkRadiusRatio().
Public propertyKinkAtTangentChange
Returns true if tangent discontinuities should be tested when finding kinks. The angle used for testing is KinkAngleDegrees().
Top
Methods
  NameDescription
Public methodComputeCurvatureRadiusRatio
Calculates the curvature radius ratio and the angle between the two curvature vectors.
Public methodDispose
Actively reclaims unmanaged resources that this instance uses.
Protected methodDispose(Boolean)
For derived class implementers.

This method is called with argument true when class user calls Dispose(), while with argument false when the Garbage Collector invokes the finalizer, or Finalize() method.

You must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.

Also, you must call the base virtual method within your overriding method.

Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Passively reclaims unmanaged resources when the class user did not explicitly call Dispose().
(Overrides ObjectFinalize.)
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodIsCurvatureKink(Curve, Double)
True if there is a curvature discontinuity at curve(t) that passes the curvature kink test.
Public methodIsCurvatureKink(Vector3d, Vector3d)
True if the angle between curvature_from_below and curvature_from_above is > KinkAngleDegrees or the ratio min/max < CurvatureKinkRadiusRatio, where min and max are the minimum and maximum lengths of curvatureFromBelow and v. Both of these tests are scale independent. If an input curvature vector has length <= CurvatureKinkZeroTolerance, then that curvature is treated as zero. When is CurvatureKinkZeroTolerance > 0, the test is scale dependent. The default value is chosen to work reasonably well for most models at most scales.
Public methodIsCurvatureZero(Double)
Returns true if the curvature vector is considered to be zero given the CurvatureKinkZeroTolerance
Public methodIsCurvatureZero(Vector3d)
Returns true if the curvature vector is considered to be zero given the CurvatureKinkZeroTolerance
Public methodIsKink
True if there is a kink at curve(t).
Public methodIsTangentKink(Curve, Double)
True if there is a tangent discontinuity at curve(t) and the agnle between the two tangents is > KinkAngleDegrees
Public methodIsTangentKink(Vector3d, Vector3d)
True if the angle between tangent_from_below and tangent_from_above is > KinkAngleDegrees
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
See Also