Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions
Extrema_ExtCC Class Reference

It calculates all the distance between two curves. These distances can be maximum or minimum. More...

#include <Extrema_ExtCC.hxx>

Public Member Functions

 Extrema_ExtCC (const double TolC1=1.0e-10, const double TolC2=1.0e-10)
 
 Extrema_ExtCC (const Adaptor3d_Curve &C1, const Adaptor3d_Curve &C2, const double TolC1=1.0e-10, const double TolC2=1.0e-10)
 It calculates all the distances.
 
 Extrema_ExtCC (const Adaptor3d_Curve &C1, const Adaptor3d_Curve &C2, const double U1, const double U2, const double V1, const double V2, const double TolC1=1.0e-10, const double TolC2=1.0e-10)
 It calculates all the distances.
 
void Initialize (const Adaptor3d_Curve &C1, const Adaptor3d_Curve &C2, const double TolC1=1.0e-10, const double TolC2=1.0e-10)
 Initializes but does not perform algorithm.
 
void Initialize (const Adaptor3d_Curve &C1, const Adaptor3d_Curve &C2, const double U1, const double U2, const double V1, const double V2, const double TolC1=1.0e-10, const double TolC2=1.0e-10)
 Initializes but does not perform algorithm.
 
void SetCurve (const int theRank, const Adaptor3d_Curve &C)
 
void SetCurve (const int theRank, const Adaptor3d_Curve &C, const double Uinf, const double Usup)
 
void SetRange (const int theRank, const double Uinf, const double Usup)
 
void SetTolerance (const int theRank, const double Tol)
 
void Perform ()
 
bool IsDone () const
 Returns True if the distances are found.
 
int NbExt () const
 Returns the number of extremum distances.
 
bool IsParallel () const
 Returns True if the two curves are parallel.
 
double SquareDistance (const int N=1) const
 Returns the value of the Nth extremum square distance.
 
void Points (const int N, Extrema_POnCurv &P1, Extrema_POnCurv &P2) const
 Returns the points of the Nth extremum distance. P1 is on the first curve, P2 on the second one.
 
void TrimmedSquareDistances (double &dist11, double &distP12, double &distP21, double &distP22, gp_Pnt &P11, gp_Pnt &P12, gp_Pnt &P21, gp_Pnt &P22) const
 if the curve is a trimmed curve, dist11 is a square distance between the point on C1 of parameter FirstParameter and the point of parameter FirstParameter on C2.
 
void SetSingleSolutionFlag (const bool theSingleSolutionFlag)
 Set flag for single extrema computation. Works on parametric solver only.
 
bool GetSingleSolutionFlag () const
 Get flag for single extrema computation. Works on parametric solver only.
 

Protected Member Functions

void PrepareResults (const Extrema_ExtElC &AlgExt, const bool theIsInverse, const double Ut11, const double Ut12, const double Ut21, const double Ut22)
 Prepares the extrema result(s) for analytical cases (line, circle, ellipsis etc.)
 
void PrepareResults (const Extrema_ECC &AlgExt, const double Ut11, const double Ut12, const double Ut21, const double Ut22)
 Prepares the extrema result(s) for general cases (e.g. with B-spline curves).
 
void PrepareParallelResult (const double theUt11, const double theUt12, const double theUt21, const double theUt22, const double theSqDist)
 Prepares the extrema result(s) in case when the given curves are parallel.
 
void ClearSolutions ()
 

Detailed Description

It calculates all the distance between two curves. These distances can be maximum or minimum.

Constructor & Destructor Documentation

◆ Extrema_ExtCC() [1/3]

Extrema_ExtCC::Extrema_ExtCC ( const double TolC1 = 1.0e-10,
const double TolC2 = 1.0e-10 )

◆ Extrema_ExtCC() [2/3]

Extrema_ExtCC::Extrema_ExtCC ( const Adaptor3d_Curve & C1,
const Adaptor3d_Curve & C2,
const double TolC1 = 1.0e-10,
const double TolC2 = 1.0e-10 )

It calculates all the distances.

◆ Extrema_ExtCC() [3/3]

Extrema_ExtCC::Extrema_ExtCC ( const Adaptor3d_Curve & C1,
const Adaptor3d_Curve & C2,
const double U1,
const double U2,
const double V1,
const double V2,
const double TolC1 = 1.0e-10,
const double TolC2 = 1.0e-10 )

It calculates all the distances.

Member Function Documentation

◆ ClearSolutions()

void Extrema_ExtCC::ClearSolutions ( )
inlineprotected

◆ GetSingleSolutionFlag()

bool Extrema_ExtCC::GetSingleSolutionFlag ( ) const

Get flag for single extrema computation. Works on parametric solver only.

◆ Initialize() [1/2]

void Extrema_ExtCC::Initialize ( const Adaptor3d_Curve & C1,
const Adaptor3d_Curve & C2,
const double TolC1 = 1.0e-10,
const double TolC2 = 1.0e-10 )

Initializes but does not perform algorithm.

◆ Initialize() [2/2]

void Extrema_ExtCC::Initialize ( const Adaptor3d_Curve & C1,
const Adaptor3d_Curve & C2,
const double U1,
const double U2,
const double V1,
const double V2,
const double TolC1 = 1.0e-10,
const double TolC2 = 1.0e-10 )

Initializes but does not perform algorithm.

◆ IsDone()

bool Extrema_ExtCC::IsDone ( ) const

Returns True if the distances are found.

◆ IsParallel()

bool Extrema_ExtCC::IsParallel ( ) const

Returns True if the two curves are parallel.

◆ NbExt()

int Extrema_ExtCC::NbExt ( ) const

Returns the number of extremum distances.

◆ Perform()

void Extrema_ExtCC::Perform ( )

◆ Points()

void Extrema_ExtCC::Points ( const int N,
Extrema_POnCurv & P1,
Extrema_POnCurv & P2 ) const

Returns the points of the Nth extremum distance. P1 is on the first curve, P2 on the second one.

◆ PrepareParallelResult()

void Extrema_ExtCC::PrepareParallelResult ( const double theUt11,
const double theUt12,
const double theUt21,
const double theUt22,
const double theSqDist )
protected

Prepares the extrema result(s) in case when the given curves are parallel.

◆ PrepareResults() [1/2]

void Extrema_ExtCC::PrepareResults ( const Extrema_ECC & AlgExt,
const double Ut11,
const double Ut12,
const double Ut21,
const double Ut22 )
protected

Prepares the extrema result(s) for general cases (e.g. with B-spline curves).

◆ PrepareResults() [2/2]

void Extrema_ExtCC::PrepareResults ( const Extrema_ExtElC & AlgExt,
const bool theIsInverse,
const double Ut11,
const double Ut12,
const double Ut21,
const double Ut22 )
protected

Prepares the extrema result(s) for analytical cases (line, circle, ellipsis etc.)

◆ SetCurve() [1/2]

void Extrema_ExtCC::SetCurve ( const int theRank,
const Adaptor3d_Curve & C )

◆ SetCurve() [2/2]

void Extrema_ExtCC::SetCurve ( const int theRank,
const Adaptor3d_Curve & C,
const double Uinf,
const double Usup )

◆ SetRange()

void Extrema_ExtCC::SetRange ( const int theRank,
const double Uinf,
const double Usup )

◆ SetSingleSolutionFlag()

void Extrema_ExtCC::SetSingleSolutionFlag ( const bool theSingleSolutionFlag)

Set flag for single extrema computation. Works on parametric solver only.

◆ SetTolerance()

void Extrema_ExtCC::SetTolerance ( const int theRank,
const double Tol )

◆ SquareDistance()

double Extrema_ExtCC::SquareDistance ( const int N = 1) const

Returns the value of the Nth extremum square distance.

◆ TrimmedSquareDistances()

void Extrema_ExtCC::TrimmedSquareDistances ( double & dist11,
double & distP12,
double & distP21,
double & distP22,
gp_Pnt & P11,
gp_Pnt & P12,
gp_Pnt & P21,
gp_Pnt & P22 ) const

if the curve is a trimmed curve, dist11 is a square distance between the point on C1 of parameter FirstParameter and the point of parameter FirstParameter on C2.


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