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

Point-Circle extrema computation. More...

#include <ExtremaPC_Circle.hxx>

Public Member Functions

 ExtremaPC_Circle (const gp_Circ &theCircle)
 Constructor with circle geometry (full circle).
 
 ExtremaPC_Circle (const gp_Circ &theCircle, const ExtremaPC::Domain1D &theDomain)
 Constructor with circle geometry and parameter domain.
 
 ExtremaPC_Circle (const ExtremaPC_Circle &)=delete
 Copy constructor is deleted.
 
ExtremaPC_Circleoperator= (const ExtremaPC_Circle &)=delete
 Copy assignment operator is deleted.
 
 ExtremaPC_Circle (ExtremaPC_Circle &&)=default
 Move constructor.
 
ExtremaPC_Circleoperator= (ExtremaPC_Circle &&)=default
 Move assignment operator.
 
gp_Pnt Value (double theU) const
 Evaluates point on circle at parameter.
 
bool IsBounded () const
 Returns true if domain is bounded (partial arc).
 
const ExtremaPC::Domain1DDomain () const
 Returns the domain (only valid if IsBounded() is true).
 
const ExtremaPC::ResultPerform (const gp_Pnt &theP, double theTol, ExtremaPC::SearchMode theMode=ExtremaPC::SearchMode::MinMax) const
 Compute extrema between point P and the circle. 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 circle arc including endpoints. Uses domain specified at construction time.
 
const gp_CircCircle () const
 Returns the circle geometry.
 

Detailed Description

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:

  1. Projects point P onto the circle plane -> Pp
  2. 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.

Note
Degenerate case: When P projects to the circle center, all points on the circle are equidistant (infinite solutions). Returns Status::InfiniteSolutions with InfiniteSquareDistance = R^2 + h^2 where h is the height above the circle plane.
A circle always has exactly 2 extrema: one minimum (closest) and one maximum (farthest), at opposite points on the circle.

Constructor & Destructor Documentation

◆ ExtremaPC_Circle() [1/4]

ExtremaPC_Circle::ExtremaPC_Circle ( const gp_Circ & theCircle)
inlineexplicit

Constructor with circle geometry (full circle).

Parameters
[in]theCirclethe circle to compute extrema for

◆ ExtremaPC_Circle() [2/4]

ExtremaPC_Circle::ExtremaPC_Circle ( const gp_Circ & theCircle,
const ExtremaPC::Domain1D & theDomain )
inline

Constructor with circle geometry and parameter domain.

Parameters
[in]theCirclethe circle to compute extrema for
[in]theDomainparameter domain in radians (fixed for all queries)

◆ ExtremaPC_Circle() [3/4]

ExtremaPC_Circle::ExtremaPC_Circle ( const ExtremaPC_Circle & )
delete

Copy constructor is deleted.

◆ ExtremaPC_Circle() [4/4]

ExtremaPC_Circle::ExtremaPC_Circle ( ExtremaPC_Circle && )
default

Move constructor.

Member Function Documentation

◆ Circle()

const gp_Circ & ExtremaPC_Circle::Circle ( ) const
inline

Returns the circle geometry.

◆ Domain()

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

Returns the domain (only valid if IsBounded() is true).

◆ IsBounded()

bool ExtremaPC_Circle::IsBounded ( ) const
inline

Returns true if domain is bounded (partial arc).

◆ operator=() [1/2]

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

Copy assignment operator is deleted.

◆ operator=() [2/2]

ExtremaPC_Circle & ExtremaPC_Circle::operator= ( ExtremaPC_Circle && )
default

Move assignment operator.

◆ Perform()

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

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

Parameters
thePquery point
theToltolerance for degenerate case detection
theModesearch mode (MinMax, Min, or Max)
Returns
const reference to result containing extrema or InfiniteSolutions status

◆ PerformWithEndpoints()

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

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

Parameters
thePquery point
theToltolerance for degenerate case detection
theModesearch mode (MinMax, Min, or Max)
Returns
const reference to result containing interior + endpoint extrema or InfiniteSolutions status

◆ Value()

gp_Pnt ExtremaPC_Circle::Value ( double theU) const
inline

Evaluates point on circle at parameter.

Parameters
theUparameter (radians)
Returns
point on circle

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