OCCT3D OCCT 8.0.1
OCCT documentation

Search guides and API reference

Enter at least two characters.

    Open CASCADE Technology Reference Manual 8.0.1
    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
    nodiscard

    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
    nodiscard

    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: