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

Point-OffsetCurve extrema computation using grid-based approach. More...

#include <ExtremaPC_OffsetCurve.hxx>

Public Member Functions

 ExtremaPC_OffsetCurve (const Adaptor3d_Curve &theCurve)
 Constructor with curve adaptor (uses full curve domain). Grid is built eagerly at construction time.
 
 ExtremaPC_OffsetCurve (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_OffsetCurve (const ExtremaPC_OffsetCurve &)=delete
 Copy constructor is deleted.
 
ExtremaPC_OffsetCurveoperator= (const ExtremaPC_OffsetCurve &)=delete
 Copy assignment operator is deleted.
 
 ExtremaPC_OffsetCurve (ExtremaPC_OffsetCurve &&)=default
 Move constructor.
 
ExtremaPC_OffsetCurveoperator= (ExtremaPC_OffsetCurve &&)=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-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:

  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

Offset curves are handled through the Adaptor3d_Curve interface, 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.

Constructor & Destructor Documentation

◆ ExtremaPC_OffsetCurve() [1/4]

ExtremaPC_OffsetCurve::ExtremaPC_OffsetCurve ( const Adaptor3d_Curve & theCurve)
explicit

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

Parameters
[in]theCurvecurve adaptor for offset curve (must remain valid)

◆ ExtremaPC_OffsetCurve() [2/4]

ExtremaPC_OffsetCurve::ExtremaPC_OffsetCurve ( 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 for offset curve (must remain valid)
[in]theDomainparameter domain (fixed for all queries)

◆ ExtremaPC_OffsetCurve() [3/4]

ExtremaPC_OffsetCurve::ExtremaPC_OffsetCurve ( const ExtremaPC_OffsetCurve & )
delete

Copy constructor is deleted.

◆ ExtremaPC_OffsetCurve() [4/4]

ExtremaPC_OffsetCurve::ExtremaPC_OffsetCurve ( ExtremaPC_OffsetCurve && )
default

Move constructor.

Member Function Documentation

◆ Domain()

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

Returns the domain.

◆ IsBounded()

bool ExtremaPC_OffsetCurve::IsBounded ( ) const
inline

Returns true if domain is bounded.

◆ operator=() [1/2]

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

Copy assignment operator is deleted.

◆ operator=() [2/2]

ExtremaPC_OffsetCurve & ExtremaPC_OffsetCurve::operator= ( ExtremaPC_OffsetCurve && )
default

Move assignment operator.

◆ Perform()

const ExtremaPC::Result & ExtremaPC_OffsetCurve::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_OffsetCurve::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_OffsetCurve::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: