# SurfaceCurvature 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 SurfaceCurvature : IDisposable, IEquatable<SurfaceCurvature>, IComparable<SurfaceCurvature>
```

Maintains computed information for principal surface curvature evaluation.

## Constructors

- [SurfaceCurvature](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/ctor.md): Default constructs a new surface curvature object. Both kappa1 and kappa2 are zero.

## Finalizer

- [~SurfaceCurvature](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/finalize.md): Passively releases the unmanaged pointer.

## Properties

- [Gaussian](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/gaussian.md): The Gaussian curvature is kappa1*kappa2.
- [IsNaN](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/isnan.md): True if either of kappa1 or kappa2 is NaN.
- [IsSet](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/isset.md): True if kappa1 and kappa2 are both valid finite values.
- [IsUnset](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/isunset.md): True if either of kappa1 or kappa2 is not a valid finite value.
- [IsZero](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/iszero.md): True if both kappa1 and kappa2 are zero.
- [MaximumPrincipalCurvature](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/maximumprincipalcurvature.md): If set, the maximum of kapp1 and kappa2 returned. Otherwise, the quiet NaN is returned.
- [MaximumRadius](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/maximumradius.md): If a principal curvature value is zero or the principal curvatures have opposite signs, then the maximum radius of curvature is infinite RhinoMath.InfiniteRadius is returned. Otherwise the maximum radius of curvature is 1/min(fabs(kappa1),fabs(kappa2)).
- [Mean](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/mean.md): The mean curvature is (kappa1+kappa2)/2.
- [MinimumPrincipalCurvature](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/minimumprincipalcurvature.md): If set, the minimum of kappa1 and kappa2 returned. Otherwise, the quiet NaN is returned.
- [MinimumRadius](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/minimumradius.md): The minimum radius of curvature is 1/max(fabs(kappa1),fabs(kappa2)). Infinite radius values are returned as RhinoMath.InfiniteRadius.
- [Normal](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/normal.md): Gets the normal direction of the surface at the u,v parameter where the surface curvature was evaluated.
- [Point](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/point.md): Gets the point at the u,v parameter where the surface curvature was evaluated.
- [UVPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/uvpoint.md): Gets the u,v parameter where the surface curvature was evaluated.

## Methods

- [CompareTo](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/compareto.md): Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
- [Create](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/create.md): (static) Create a SurfaceCurvature from explicit principal curvatures and the geometric frame at the evaluation point. Use this when you have already computed curvature data from a non-RhinoCommon surface representation (planes, spheres, cylinders, cones, etc.).
- [CreateFromGaussianAndMeanCurvatures](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/createfromgaussianandmeancurvatures.md): (static) Create a SurfaceCurvature from a gaussian and mean curvature values using the relationship between the principal curvatures, gaussian and mean: kappa1 = mean + sqrt(mean*mean - gaussian) kappa2 = mean - sqrt(mean*mean - gaussian) If the radicand is negative, we assume we're dealing with a bit of numerical noise or estimates and set the principal curvatures: kappa1 = kappa2 = sign(mean)*sqrt(gaussian)
- [CreateFromPrincipalCurvatures](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/createfromprincipalcurvatures.md): (static) Create a SurfaceCurvature from the principal curvature values. The principal curvature values are the most fundamental curvature properties of a surface. Other curvatures are calculated from them.
- [CreateFromSubD](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/createfromsubd.md): (2 overloads, static) Create a SurfaceCurvature by evaluating a SubD's surface (its limit surface) at a surface parameter, choosing what to report exactly on an extraordinary vertex.
- [CreateFromSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/createfromsurface.md): (static) Create a SurfaceCurvature from by evaluating surface and a u,v parameter.
- [Direction](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/direction.md): Gets the principal curvature direction vector at the u,v parameter where the surface curvature was evaluated..
- [Dispose](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/dispose.md): Actively releases the unmanaged pointer.
- [Equals](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/equals.md): (2 overloads) Indicates whether the current object is equal to another object of the same type.
- [GetHashCode](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/gethashcode.md): Returns a runtime-stable hash code for this object.
- [Kappa](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/kappa.md): Gets the principal curvature values: kappa1 - Principal curvature with maximum absolute value. kappa2 - Principal curvature with minimum absolute value.
- [KappaValue](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/kappavalue.md): Calculate one of the four typical curvature values associated with the two principal curvatures and frequently used in false color curvature analysis.
- [OsculatingCircle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.surfacecurvature/osculatingcircle.md): Computes the osculating circle along the given direction.
