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
)
Public Function GetNextDiscontinuity (
direction As Integer,
continuityType As Continuity,
t0 As Double,
t1 As Double,
cosAngleTolerance As Double,
curvatureTolerance As Double,
<OutAttribute> ByRef t As Double
) As Boolean
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