# CurveKinkDefinition class

Namespace: [Rhino.Geometry](https://developer.rhino3d.com/api/rhinocommon/namespace/rhino.geometry.md) · Assembly: [RhinoCommon](https://developer.rhino3d.com/api/rhinocommon/assembly/rhinocommon.md)

```cs
public class CurveKinkDefinition : IDisposable
```

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.

## Constructors

- [CurveKinkDefinition](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/ctor.md): (2 overloads) Construct a new instance with default values.

## Finalizer

- [~CurveKinkDefinition](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/finalize.md): Passively reclaims unmanaged resources when the class user did not explicitly call Dispose().

## Properties

- [CurvatureKinkRadiusRatio](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/curvaturekinkradiusratio.md): If the ratio (minimum radius of curvature)/(maximum radius of curvature) at a curvature discontinuity is < [CurveKinkDefinition.CurvatureKinkRadiusRatio](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/curvaturekinkradiusratio.md), then that curvature discontinuity is treated as a kink. In particular, if [CurveKinkDefinition.CurvatureKinkRadiusRatio](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/curvaturekinkradiusratio.md) = 0, then curvature radius discontinuity checks are disabled.
- [CurvatureKinkZeroTolerance](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/curvaturekinkzerotolerance.md): If the curvature <= [CurveKinkDefinition.CurvatureKinkZeroTolerance](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/curvaturekinkzerotolerance.md), then it is treated as flat: its value is treated as [CurveKinkDefinition.CurvatureKinkZeroTolerance](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/curvaturekinkzerotolerance.md) and the direction of the curvature vector is ignored. Put another way, every radius of curvature >= 1/[CurveKinkDefinition.CurvatureKinkZeroTolerance](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/curvaturekinkzerotolerance.md) is treated as 1/[CurveKinkDefinition.CurvatureKinkZeroTolerance](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/curvaturekinkzerotolerance.md). If you know of a finite radius R that should be considered flat, set this to 1.0/R. If [CurveKinkDefinition.CurvatureKinkZeroTolerance](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/curvaturekinkzerotolerance.md) > 0, then the curvature kink test is scale dependent. If [CurveKinkDefinition.CurvatureKinkZeroTolerance](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/curvaturekinkzerotolerance.md) = 0, then the curvature kink test is independent of scale. The default is 0.
- [KinkAngleDegrees](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/kinkangledegrees.md): The angle, in degrees, used to determine if when an abrupt change in tangent or curvature vector direction is a kink.
- [KinkAtCurvatureChange](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/kinkatcurvaturechange.md): 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().
- [KinkAtTangentChange](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/kinkattangentchange.md): Returns true if tangent discontinuities should be tested when finding kinks. The angle used for testing is KinkAngleDegrees().

## Methods

- [ComputeCurvatureRadiusRatio](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/computecurvatureradiusratio.md): Calculates the curvature radius ratio and the angle between the two curvature vectors, as used by [CurveKinkDefinition.IsCurvatureKink(Vector3d, Vector3d)](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/iscurvaturekink.md).
- [Dispose](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/dispose.md): (2 overloads) Actively reclaims unmanaged resources that this instance uses.
- [IsCurvatureKink](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/iscurvaturekink.md): (2 overloads) True if there is a curvature discontinuity at curve(t) that passes the curvature kink test.
- [IsCurvatureZero](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/iscurvaturezero.md): (2 overloads) Returns true if the curvature vector is considered to be zero given the [CurveKinkDefinition.CurvatureKinkZeroTolerance](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/curvaturekinkzerotolerance.md)
- [IsKink](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/iskink.md): True if there is a kink at curve(t).
- [IsTangentKink](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/istangentkink.md): (2 overloads) True if there is a tangent discontinuity at curve(t) and the agnle between the two tangents is > [CurveKinkDefinition.KinkAngleDegrees](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curvekinkdefinition/kinkangledegrees.md)
