ExtremaPC
OCCT package ExtremaPC: ExtremaPC_BezierCurve, ExtremaPC_BSplineCurve, ExtremaPC_Circle, ExtremaPC_Config, and 13 more bound classes.
ExtremaPC_BezierCurve
Point-BezierCurve extrema computation using grid-based approach.
Computes the extrema between a 3D point and a Bezier curve using a grid-based approach with Newton refinement.
The grid is cached for efficiency when performing multiple queries with the same parameter domain.
The algorithm:
- Build grid with (3 * (degree + 1)) samples using
GeomGridEval - Linear scan of grid to find candidate intervals (sign changes in F(u))
- Newton refinement on each candidate interval
This approach is simpler and more stable than BVH-based methods, with comparable accuracy for typical Bezier curves.
The domain is fixed at construction time and the grid is built eagerly for optimal performance with multiple queries.
Constructors(2)
- constructor(theCurve: Geom_BezierCurve): ExtremaPC_BezierCurve
Constructor with Bezier curve (uses full curve domain). Grid is built eagerly at construction time.
Parameters (1)theCurve—Bezier curve handle
- constructor(theCurve: Geom_BezierCurve, theDomain: Domain1D): ExtremaPC_BezierCurve
Constructor with Bezier curve and parameter domain. Grid is built eagerly at construction time for the specified domain.
Parameters (2)theCurve—Bezier curve handletheDomain—parameter domain (fixed for all queries)
Instance methods(6)
Evaluates point on curve at parameter.
Parameters (1)theU—parameter
Returnspoint on curve
- IsBounded(): boolean
Returns true if domain is bounded (subset of curve domain).
- Domain(): Domain1D
Returns the domain.
- Perform(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Compute extrema between point P and the curve. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for root findingtheMode—search mode (MinMax, Min, or Max)
Returnsconst reference to result containing extrema
- PerformWithEndpoints(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Compute extrema between point P and the curve including endpoints. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for root findingtheMode—search mode (MinMax, Min, or Max)
Returnsconst reference to result containing interior + endpoint extrema
Returns the Bezier curve.
ExtremaPC_BSplineCurve
Point-BSplineCurve extrema computation using grid-based approach.
Computes the extrema between a 3D point and a BSpline curve using a grid-based approach with Newton refinement.
The grid is cached for efficiency when performing multiple queries with the same parameter domain.
The algorithm:
- Build knot-aware grid with 2*(degree + 1) samples per knot span using
GeomGridEval - Linear scan of grid to find candidate intervals (sign changes in F(u))
- Newton refinement on each candidate interval
This approach is simpler and more stable than BVH-based methods, with comparable accuracy for typical BSpline curves.
The domain is fixed at construction time and the grid is built eagerly for optimal performance with multiple queries.
Constructors(2)
- constructor(theCurve: Geom_BSplineCurve): ExtremaPC_BSplineCurve
Constructor with BSpline curve (uses full curve domain). Grid is built eagerly at construction time.
Parameters (1)theCurve—BSpline curve handle
- constructor(theCurve: Geom_BSplineCurve, theDomain: Domain1D): ExtremaPC_BSplineCurve
Constructor with BSpline curve and parameter domain. Grid is built eagerly at construction time for the specified domain.
Parameters (2)theCurve—BSpline curve handletheDomain—parameter domain (fixed for all queries)
Instance methods(6)
Evaluates point on curve at parameter.
Parameters (1)theU—parameter
Returnspoint on curve
- IsBounded(): boolean
Returns true if domain is bounded (subset of curve domain).
- Domain(): Domain1D
Returns the domain.
- Perform(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Compute extrema between point P and the curve. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for root findingtheMode—search mode (MinMax, Min, or Max)
Returnsconst reference to result containing extrema
- PerformWithEndpoints(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Compute extrema between point P and the curve including endpoints. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for root findingtheMode—search mode (MinMax, Min, or Max)
Returnsconst reference to result containing interior + endpoint extrema
Returns the BSpline curve.
ExtremaPC_Circle
Point-Circle extrema computation.
Computes the extrema between a 3D point and a circle. Uses analytical solution via angle computation in the circle plane.
For a circle with center O and radius R, the algorithm:
- Projects point P onto the circle plane -> Pp
- Computes angle from OPp to find closest/farthest points
The domain is fixed at construction time for optimal performance. For full circle, construct without domain or with nullopt.
Constructors(2)
- constructor(theCircle: gp_Circ): ExtremaPC_Circle
Constructor with circle geometry (full circle).
Parameters (1)theCircle—the circle to compute extrema for
- constructor(theCircle: gp_Circ, theDomain: Domain1D): ExtremaPC_Circle
Constructor with circle geometry and parameter domain.
Parameters (2)theCircle—the circle to compute extrema fortheDomain—parameter domain in radians (fixed for all queries)
Instance methods(6)
Evaluates point on circle at parameter.
Parameters (1)theU—parameter (radians)
Returnspoint on circle
- IsBounded(): boolean
Returns true if domain is bounded (partial arc).
- Domain(): Domain1D
Returns the domain (only valid if
IsBounded()is true). - Perform(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Compute extrema between point P and the circle. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for degenerate case detectiontheMode—search mode (MinMax, Min, or Max)
Returnsconst reference to result containing extrema or InfiniteSolutions status
- PerformWithEndpoints(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Compute extrema between point P and the circle arc including endpoints. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for degenerate case detectiontheMode—search mode (MinMax, Min, or Max)
Returnsconst reference to result containing interior + endpoint extrema or InfiniteSolutions status
Returns the circle geometry.
ExtremaPC_Config
Constructors(1)
Properties(5)
ExtremaPC_Curve
Main aggregator for Point-Curve extrema computation.
Provides a unified interface for computing extrema between a 3D point and any type of curve. Uses std::variant with std::visit for efficient curve type dispatch at runtime.
Supports all elementary curve types (analytical solutions):
- Line, Circle, Ellipse, Hyperbola, Parabola
And numerical curves (grid-based with Newton refinement): - BSpline, Bezier, Offset, and general curves
Usage example:
Constructors(6)
- constructor(theCurve: GeomAdaptor_Curve): ExtremaPC_Curve
Constructor with curve adaptor. Uses the curve's natural parameter bounds as domain.
Parameters (1)theCurve—curve adaptor
- constructor(theCurve: GeomAdaptor_TransformedCurve): ExtremaPC_Curve
Constructor with transformed curve adaptor. Uses the curve's natural parameter bounds as domain. For elementary curves, uses already-transformed primitives (analytical solver). For BSpline/Bezier, uses inverse-transform optimization with post-processing. For offset/other curves, delegates through
Adaptor3d_Curveinterface.Parameters (1)theCurve—transformed curve adaptor
- constructor(theCurve: Geom_Curve): ExtremaPC_Curve
Constructor with
Geom_Curve. For non-trimmed curves, does NOT set domain (uses natural/unbounded behavior). For trimmed curves, uses the trimmed bounds as domain.Parameters (1)theCurve—geometric curve handle
- constructor(theCurve: GeomAdaptor_Curve, theUMin: number, theUMax: number): ExtremaPC_Curve
Constructor with curve adaptor and parameter range.
Parameters (3)theCurve—curve adaptortheUMin—lower parameter boundtheUMax—upper parameter bound
- constructor(theCurve: GeomAdaptor_TransformedCurve, theUMin: number, theUMax: number): ExtremaPC_Curve
Constructor with transformed curve adaptor and parameter range.
Parameters (3)theCurve—transformed curve adaptortheUMin—lower parameter boundtheUMax—upper parameter bound
- constructor(theCurve: Geom_Curve, theUMin: number, theUMax: number): ExtremaPC_Curve
Constructor with
Geom_Curveand parameter range. For trimmed curves, intersects input bounds with trimmed bounds.Parameters (3)theCurve—geometric curve handletheUMin—lower parameter boundtheUMax—upper parameter bound
Instance methods(3)
- Perform(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Computes extrema between point P and the curve. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for extrema computationtheMode—search mode (MinMax, Min, or Max)
Returnsconst reference to result containing all found extrema
- PerformWithEndpoints(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Computes extrema between point P and the curve, including endpoints. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for extrema computationtheMode—search mode (MinMax, Min, or Max)
Returnsconst reference to result containing interior + endpoint extrema
- IsInitialized(): boolean
Returns true if the evaluator is properly initialized.
ExtremaPC_DistanceFunction
Distance function for point-curve extrema computation.
Implements the function F(u) = (C(u) - P) . C'(u) and its derivative F'(u) = C'(u) . C'(u) + (C(u) - P) . C''(u).
The roots of F(u) = 0 correspond to the extrema (local minima and maxima) of the squared distance function D(u) = ||C(u) - P||^2.
This class provides the interface required by MathRoot::FindAllRootsWithDerivative.
Constructors(1)
- constructor(theCurve: Adaptor3d_Curve, theP: gp_Pnt): ExtremaPC_DistanceFunction
Constructor.
Parameters (2)theCurve—the curve adaptortheP—the query point
Instance methods(7)
- Value(theU: number, theF: number): { returnValue: boolean; theF: number }
Computes F(u) = (C(u) - P) . C'(u).
Parameters (2)theU—parameter valuetheF—output: function value
ReturnsA result object with fields:
returnValue: true if computation succeededtheF: output: function value
- Values(theU: number, theF: number, theDF: number): { returnValue: boolean; theF: number; theDF: number }
Computes F(u) and F'(u). F(u) = (C(u) - P) . C'(u) F'(u) = C'(u) . C'(u) + (C(u) - P) . C''(u).
Parameters (3)theU—parameter valuetheF—output: function valuetheDF—output: derivative value
ReturnsA result object with fields:
returnValue: true if computation succeededtheF: output: function valuetheDF: output: derivative value
- Derivative(theU: number, theDF: number): { returnValue: boolean; theDF: number }
Computes the derivative F'(u).
Parameters (2)theU—parameter valuetheDF—output: derivative value
ReturnsA result object with fields:
returnValue: true if computation succeededtheDF: output: derivative value
- FirstParameter(): number
Returns the first parameter of the curve.
- LastParameter(): number
Returns the last parameter of the curve.
Returns the query point.
Returns the curve.
ExtremaPC_Ellipse
Point-Ellipse extrema computation.
Computes the extrema between a 3D point and an ellipse. Uses trigonometric equation solving via MathRoot::Trigonometric.
The algorithm:
- Projects point P onto the ellipse plane -> Pp
- Solves: (B^2 - A^2)cos(u)sin(u) - BYcos(u) + AXsin(u) = 0 where A = major radius, B = minor radius, and (X,Y) are coordinates of Pp in the ellipse local coordinate system.
The domain is fixed at construction time for optimal performance. For full ellipse, construct without domain or with nullopt.
Constructors(2)
- constructor(theEllipse: gp_Elips): ExtremaPC_Ellipse
Constructor with ellipse geometry (full ellipse).
Parameters (1)theEllipse—the ellipse to compute extrema for
- constructor(theEllipse: gp_Elips, theDomain: Domain1D): ExtremaPC_Ellipse
Constructor with ellipse geometry and parameter domain.
Parameters (2)theEllipse—the ellipse to compute extrema fortheDomain—parameter domain in radians (fixed for all queries)
Instance methods(6)
Evaluates point on ellipse at parameter.
Parameters (1)theU—parameter (radians)
Returnspoint on ellipse
- IsBounded(): boolean
Returns true if domain is bounded (partial arc).
- Domain(): Domain1D
Returns the domain (only valid if
IsBounded()is true). - Perform(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Compute extrema between point P and the ellipse. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for degenerate case detectiontheMode—search mode (MinMax, Min, or Max)
Returnsconst reference to result containing extrema or InfiniteSolutions status
- PerformWithEndpoints(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Compute extrema between point P and the ellipse arc including endpoints. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for degenerate case detectiontheMode—search mode (MinMax, Min, or Max)
Returnsconst reference to result containing interior + endpoint extrema or InfiniteSolutions status
Returns the ellipse geometry.
ExtremaPC_ExtremumResult
Constructors(1)
Properties(4)
ExtremaPC_GridEvaluator
Grid-based point-curve extrema computation class.
Provides grid-based extrema finding algorithm with cached state for optimal performance on repeated queries. Used by BSpline, Bezier, Offset, and other curve evaluators.
Algorithm:
- Build grid of (parameter, point, D1) from
GeomGridEval - Linear scan of grid to find candidate intervals (sign changes in F(u))
- Newton refinement on each candidate
- Optional endpoint handling
All temporary vectors are stored as mutable fields and reused via Clear() to avoid repeated heap allocations.
Constructors(1)
Default constructor.
Static methods(1)
- BuildUniformParams(theUMin: number, theUMax: number, theNbSamples: number): math_Vector
Build uniform parameter grid.
Parameters (3)theUMintheUMaxtheNbSamples
Returnsmath_Vectorwith 1-based indexing
Instance methods(3)
- Grid(): any
Returns the cached grid.
Returns mutable reference to the result for post-processing.
- Perform(theCurve: Adaptor3d_Curve, theP: gp_Pnt, theDomain: Domain1D, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Perform extrema computation using cached grid (interior only).
Parameters (5)theCurve—curve adaptortheP—query pointtheDomain—parameter domaintheTol—tolerancetheMode—search mode
Returnsconst reference to result with interior extrema only
ExtremaPC_Hyperbola
Point-Hyperbola extrema computation.
Computes the extrema between a 3D point and a hyperbola. Uses quartic polynomial solving via MathPoly::Quartic with substitution.
The algorithm:
- Projects point P onto the hyperbola plane -> Pp
- For hyperbola C(u) = (Rcosh(u), rsinh(u)) with major radius R and minor radius r, substitutes v = e^u to convert the transcendental equation to a polynomial: ((R^2 + r^2)/4) * v^4 - ((XR + Yr)/2) * v^3 + ((XR - Yr)/2) * v - ((R^2 + r^2)/4) = 0
- Filters positive roots (v > 0) and converts back via u = ln(v)
The domain is fixed at construction time for optimal performance. For infinite hyperbola, construct without domain or with nullopt.
Constructors(2)
- constructor(theHyperbola: gp_Hypr): ExtremaPC_Hyperbola
Constructor with hyperbola geometry (infinite).
Parameters (1)theHyperbola—the hyperbola to compute extrema for
- constructor(theHyperbola: gp_Hypr, theDomain: Domain1D): ExtremaPC_Hyperbola
Constructor with hyperbola geometry and parameter domain.
Parameters (2)theHyperbola—the hyperbola to compute extrema fortheDomain—parameter domain (fixed for all queries)
Instance methods(6)
Evaluates point on hyperbola at parameter using cached geometry.
Parameters (1)theU—parameter
Returnspoint on hyperbola
- IsBounded(): boolean
Returns true if domain is bounded.
- Domain(): Domain1D
Returns the domain (only valid if
IsBounded()is true). - Perform(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Compute extrema between point P and the hyperbola. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for duplicate detectiontheMode—search mode (MinMax, Min, or Max)
Returnsconst reference to result containing extrema
- PerformWithEndpoints(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Compute extrema between point P and the hyperbola arc including endpoints. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for duplicate detectiontheMode—search mode (MinMax, Min, or Max)
Returnsconst reference to result containing interior + endpoint extrema
Returns the hyperbola geometry.
ExtremaPC_Line
Point-Line extrema computation.
Computes the extremum (closest point) between a 3D point and a line. Uses direct analytical projection via dot product.
For a line defined by origin O and direction D, the closest point to P is at parameter u = (P - O) . D, which gives the minimum distance.
The domain is fixed at construction time for optimal performance. For unbounded line, construct without domain or with nullopt.
Constructors(2)
- constructor(theLine: gp_Lin): ExtremaPC_Line
Constructor with line geometry (unbounded).
Parameters (1)theLine—the line to compute extrema for
- constructor(theLine: gp_Lin, theDomain: Domain1D): ExtremaPC_Line
Constructor with line geometry and parameter domain.
Parameters (2)theLine—the line to compute extrema fortheDomain—parameter domain (fixed for all queries)
Instance methods(6)
Evaluates point on line at parameter.
Parameters (1)theU—parameter
Returnspoint on line
- IsBounded(): boolean
Returns true if domain is bounded.
- Domain(): Domain1D
Returns the domain (only valid if
IsBounded()is true). - Perform(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Compute extrema between point P and the line. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for parameter comparisontheMode—search mode (unused for lines - always returns minimum)
Returnsconst reference to result containing the extremum
- PerformWithEndpoints(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Compute extrema between point P and the line segment including endpoints. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for parameter comparisontheMode—search mode (MinMax, Min, or Max)
Returnsconst reference to result containing interior + endpoint extrema
Returns the line geometry.
ExtremaPC_OffsetCurve
Point-OffsetCurve extrema computation using grid-based approach.
Computes the extrema between a 3D point and an offset curve using a grid-based approach with Newton refinement.
The grid is cached for efficiency when performing multiple queries with the same parameter domain.
The algorithm:
- Build uniform grid using
GeomGridEval - Linear scan of grid to find candidate intervals (sign changes in F(u))
- Newton refinement on each candidate interval
Offset curves are handled through theAdaptor3d_Curveinterface, which provides uniform access to the offset geometry.
The domain is fixed at construction time and the grid is built eagerly for optimal performance with multiple queries.
Constructors(2)
- constructor(theCurve: Adaptor3d_Curve): ExtremaPC_OffsetCurve
Constructor with curve adaptor (uses full curve domain). Grid is built eagerly at construction time.
Parameters (1)theCurve—curve adaptor for offset curve (must remain valid)
- constructor(theCurve: Adaptor3d_Curve, theDomain: Domain1D): ExtremaPC_OffsetCurve
Constructor with curve adaptor and parameter domain. Grid is built eagerly at construction time for the specified domain.
Parameters (2)theCurve—curve adaptor for offset curve (must remain valid)theDomain—parameter domain (fixed for all queries)
Instance methods(5)
Evaluates point on curve at parameter.
Parameters (1)theU—parameter
Returnspoint on curve
- IsBounded(): boolean
Returns true if domain is bounded.
- Domain(): Domain1D
Returns the domain.
- Perform(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Compute extrema between point P and the curve. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for root findingtheMode—search mode (MinMax, Min, or Max)
Returnsconst reference to result containing extrema
- PerformWithEndpoints(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Compute extrema between point P and the curve including endpoints. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for root findingtheMode—search mode (MinMax, Min, or Max)
Returnsconst reference to result containing interior + endpoint extrema
ExtremaPC_OtherCurve
Point-Curve extrema computation for general curves using grid-based approach.
Computes the extrema between a 3D point and a general curve using a grid-based approach with Newton refinement.
The grid is cached for efficiency when performing multiple queries with the same parameter domain.
The algorithm:
- Build uniform grid using
GeomGridEval - Linear scan of grid to find candidate intervals (sign changes in F(u))
- Newton refinement on each candidate interval
This is a fallback implementation that works with any curve type through theAdaptor3d_Curveinterface.
The domain is fixed at construction time and the grid is built eagerly for optimal performance with multiple queries.
Constructors(2)
- constructor(theCurve: Adaptor3d_Curve): ExtremaPC_OtherCurve
Constructor with curve adaptor (uses full curve domain). Grid is built eagerly at construction time.
Parameters (1)theCurve—curve adaptor (must remain valid)
- constructor(theCurve: Adaptor3d_Curve, theDomain: Domain1D): ExtremaPC_OtherCurve
Constructor with curve adaptor and parameter domain. Grid is built eagerly at construction time for the specified domain.
Parameters (2)theCurve—curve adaptor (must remain valid)theDomain—parameter domain (fixed for all queries)
Instance methods(5)
Evaluates point on curve at parameter.
Parameters (1)theU—parameter
Returnspoint on curve
- IsBounded(): boolean
Returns true if domain is bounded.
- Domain(): Domain1D
Returns the domain.
- Perform(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Compute extrema between point P and the curve. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for root findingtheMode—search mode (MinMax, Min, or Max)
Returnsconst reference to result containing extrema
- PerformWithEndpoints(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Compute extrema between point P and the curve including endpoints. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for root findingtheMode—search mode (MinMax, Min, or Max)
Returnsconst reference to result containing interior + endpoint extrema
ExtremaPC_Parabola
Point-Parabola extrema computation.
Computes the extrema between a 3D point and a parabola. Uses cubic polynomial solving via MathPoly::Cubic.
The algorithm:
- Projects point P onto the parabola plane -> Pp
- For parabola C(u) = ((u^2)/(4F), u) with focal length F, solves: (1/(4F)) * u^3 + (2F - X) * u - 2F*Y = 0 where (X, Y) are coordinates of Pp in parabola local frame.
The domain is fixed at construction time for optimal performance. For infinite parabola, construct without domain or with nullopt.
Constructors(2)
- constructor(theParabola: gp_Parab): ExtremaPC_Parabola
Constructor with parabola geometry (infinite).
Parameters (1)theParabola—the parabola to compute extrema for
- constructor(theParabola: gp_Parab, theDomain: Domain1D): ExtremaPC_Parabola
Constructor with parabola geometry and parameter domain.
Parameters (2)theParabola—the parabola to compute extrema fortheDomain—parameter domain (fixed for all queries)
Instance methods(6)
Evaluates point on parabola at parameter using cached geometry.
Parameters (1)theU—parameter
Returnspoint on parabola
- IsBounded(): boolean
Returns true if domain is bounded.
- Domain(): Domain1D
Returns the domain (only valid if
IsBounded()is true). - Perform(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Compute extrema between point P and the parabola. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for duplicate detectiontheMode—search mode (MinMax, Min, or Max)
Returnsconst reference to result containing extrema
- PerformWithEndpoints(theP: gp_Pnt, theTol: number, theMode: ExtremaPC_SearchMode): ExtremaPC_Result
Compute extrema between point P and the parabola arc including endpoints. Uses domain specified at construction time.
Parameters (3)theP—query pointtheTol—tolerance for duplicate detectiontheMode—search mode (MinMax, Min, or Max)
Returnsconst reference to result containing interior + endpoint extrema
Returns the parabola geometry.
ExtremaPC_Result
Constructors(1)
Instance methods(8)
- IsDone(): boolean
- IsInfinite(): boolean
- NbExt(): number
- MinSquareDistance(): number
- MinIndex(): number
- MaxSquareDistance(): number
- MaxIndex(): number
- Clear(): void