Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Public Member Functions
ExtremaPC_OtherCurve Class Reference

Point-Curve extrema computation for general curves using grid-based approach. More...

#include <ExtremaPC_OtherCurve.hxx>

Public Member Functions

 ExtremaPC_OtherCurve (const Adaptor3d_Curve &theCurve)
 Constructor with curve adaptor (uses full curve domain). Grid is built eagerly at construction time.
 
 ExtremaPC_OtherCurve (const Adaptor3d_Curve &theCurve, const ExtremaPC::Domain1D &theDomain)
 Constructor with curve adaptor and parameter domain. Grid is built eagerly at construction time for the specified domain.
 
 ExtremaPC_OtherCurve (const ExtremaPC_OtherCurve &)=delete
 Copy constructor is deleted.
 
ExtremaPC_OtherCurveoperator= (const ExtremaPC_OtherCurve &)=delete
 Copy assignment operator is deleted.
 
 ExtremaPC_OtherCurve (ExtremaPC_OtherCurve &&)=default
 Move constructor.
 
ExtremaPC_OtherCurveoperator= (ExtremaPC_OtherCurve &&)=default
 Move assignment operator.
 
gp_Pnt Value (double theU) const
 Evaluates point on curve at parameter.
 
bool IsBounded () const
 Returns true if domain is bounded.
 
const ExtremaPC::Domain1DDomain () const
 Returns the domain.
 
const ExtremaPC::ResultPerform (const gp_Pnt &theP, double theTol, ExtremaPC::SearchMode theMode=ExtremaPC::SearchMode::MinMax) const
 Compute extrema between point P and the curve. Uses domain specified at construction time.
 
const ExtremaPC::ResultPerformWithEndpoints (const gp_Pnt &theP, double theTol, ExtremaPC::SearchMode theMode=ExtremaPC::SearchMode::MinMax) const
 Compute extrema between point P and the curve including endpoints. Uses domain specified at construction time.
 

Detailed Description

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:

  1. Build uniform grid using GeomGridEval
  2. Linear scan of grid to find candidate intervals (sign changes in F(u))
  3. Newton refinement on each candidate interval

This is a fallback implementation that works with any curve type through the Adaptor3d_Curve interface.

The domain is fixed at construction time and the grid is built eagerly for optimal performance with multiple queries.

Constructor & Destructor Documentation

◆ ExtremaPC_OtherCurve() [1/4]

ExtremaPC_OtherCurve::ExtremaPC_OtherCurve ( const Adaptor3d_Curve & theCurve)
explicit

Constructor with curve adaptor (uses full curve domain). Grid is built eagerly at construction time.

Parameters
[in]theCurvecurve adaptor (must remain valid)

◆ ExtremaPC_OtherCurve() [2/4]

ExtremaPC_OtherCurve::ExtremaPC_OtherCurve ( const Adaptor3d_Curve & theCurve,
const ExtremaPC::Domain1D & theDomain )

Constructor with curve adaptor and parameter domain. Grid is built eagerly at construction time for the specified domain.

Parameters
[in]theCurvecurve adaptor (must remain valid)
[in]theDomainparameter domain (fixed for all queries)

◆ ExtremaPC_OtherCurve() [3/4]

ExtremaPC_OtherCurve::ExtremaPC_OtherCurve ( const ExtremaPC_OtherCurve & )
delete

Copy constructor is deleted.

◆ ExtremaPC_OtherCurve() [4/4]

ExtremaPC_OtherCurve::ExtremaPC_OtherCurve ( ExtremaPC_OtherCurve && )
default

Move constructor.

Member Function Documentation

◆ Domain()

const ExtremaPC::Domain1D & ExtremaPC_OtherCurve::Domain ( ) const
inline

Returns the domain.

◆ IsBounded()

bool ExtremaPC_OtherCurve::IsBounded ( ) const
inline

Returns true if domain is bounded.

◆ operator=() [1/2]

ExtremaPC_OtherCurve & ExtremaPC_OtherCurve::operator= ( const ExtremaPC_OtherCurve & )
delete

Copy assignment operator is deleted.

◆ operator=() [2/2]

ExtremaPC_OtherCurve & ExtremaPC_OtherCurve::operator= ( ExtremaPC_OtherCurve && )
default

Move assignment operator.

◆ Perform()

const ExtremaPC::Result & ExtremaPC_OtherCurve::Perform ( const gp_Pnt & theP,
double theTol,
ExtremaPC::SearchMode theMode = ExtremaPC::SearchMode::MinMax ) const

Compute extrema between point P and the curve. Uses domain specified at construction time.

Parameters
thePquery point
theToltolerance for root finding
theModesearch mode (MinMax, Min, or Max)
Returns
const reference to result containing extrema

◆ PerformWithEndpoints()

const ExtremaPC::Result & ExtremaPC_OtherCurve::PerformWithEndpoints ( const gp_Pnt & theP,
double theTol,
ExtremaPC::SearchMode theMode = ExtremaPC::SearchMode::MinMax ) const

Compute extrema between point P and the curve including endpoints. Uses domain specified at construction time.

Parameters
thePquery point
theToltolerance for root finding
theModesearch mode (MinMax, Min, or Max)
Returns
const reference to result containing interior + endpoint extrema

◆ Value()

gp_Pnt ExtremaPC_OtherCurve::Value ( double theU) const

Evaluates point on curve at parameter.

Parameters
theUparameter
Returns
point on curve

The documentation for this class was generated from the following file: