Click or drag to resize

SurfaceGetNextDiscontinuity Method (Int32, Continuity, Double, Double, Double, Double, Double)

Searches for a derivative, tangent, or curvature discontinuity.

Namespace:  Rhino.Geometry
Assembly:  RhinoCommon (in RhinoCommon.dll)
Since: 7.4
Syntax
public bool GetNextDiscontinuity(
	int direction,
	Continuity continuityType,
	double t0,
	double t1,
	double cosAngleTolerance,
	double curvatureTolerance,
	out double t
)

Parameters

direction
Type: SystemInt32
If 0, then "u" parameter is checked. If 1, then the "v" parameter is checked.
continuityType
Type: Rhino.GeometryContinuity
The desired continuity.
t0
Type: SystemDouble
Search begins at t0. If there is a discontinuity at t0, it will be ignored. This makes it possible to repeatedly call GetNextDiscontinuity and step through the discontinuities.
t1
Type: SystemDouble
(t0 != t1) If there is a discontinuity at t1 is will be ignored unless c is a locus discontinuity type and t1 is at the start or end of the curve.
cosAngleTolerance
Type: SystemDouble
default = cos(1 degree) Used only when continuityType is G1_continuous or G2_continuous. If the cosine of the angle between two tangent vectors is <= cos_angle_tolerance, then a G1 discontinuity is reported.
curvatureTolerance
Type: SystemDouble
(default = ON_SQRT_EPSILON) Used only when continuityType is G2_continuous. If K0 and K1 are curvatures evaluated from above and below and |K0 - K1| > curvature_tolerance, then a curvature discontinuity is reported.
t
Type: SystemDouble
if a discontinuity is found, then t reports the parameter at the discontinuity.

Return Value

Type: Boolean
Parametric continuity tests c = (C0_continuous, ..., G2_continuous): TRUE if a parametric discontinuity was found strictly between t0 and t1. Note well that all curves are parametrically continuous at the ends of their domains. Locus continuity tests c = (C0_locus_continuous, ...,G2_locus_continuous): TRUE if a locus discontinuity was found strictly between t0 and t1 or at t1 is the at the end of a curve. Note well that all open curves (IsClosed()=false) are locus discontinuous at the ends of their domains. All closed curves (IsClosed()=true) are at least C0_locus_continuous at the ends of their domains.
See Also