Open CASCADE Technology 7.8.0
|
It calculates all the extremum distances between a point and a surface. These distances can be minimum or maximum. More...
#include <Extrema_GenExtPS.hxx>
Public Member Functions | |
Extrema_GenExtPS () | |
Empty constructor. | |
~Extrema_GenExtPS () | |
Destructor. | |
Extrema_GenExtPS (const gp_Pnt &P, const Adaptor3d_Surface &S, const Standard_Integer NbU, const Standard_Integer NbV, const Standard_Real TolU, const Standard_Real TolV, const Extrema_ExtFlag F=Extrema_ExtFlag_MINMAX, const Extrema_ExtAlgo A=Extrema_ExtAlgo_Grad) | |
It calculates all the distances. The function F(u,v)=distance(P,S(u,v)) has an extremum when gradient(F)=0. The algorithm searches all the zeros inside the definition ranges of the surface. NbU and NbV are used to locate the close points to find the zeros. They must be great enough such that if there is N extrema, there will be N extrema between P and the grid. TolU et TolV are used to determine the conditions to stop the iterations; at the iteration number n: (Un - Un-1) < TolU and (Vn - Vn-1) < TolV . | |
Extrema_GenExtPS (const gp_Pnt &P, const Adaptor3d_Surface &S, const Standard_Integer NbU, const Standard_Integer NbV, const Standard_Real Umin, const Standard_Real Usup, const Standard_Real Vmin, const Standard_Real Vsup, const Standard_Real TolU, const Standard_Real TolV, const Extrema_ExtFlag F=Extrema_ExtFlag_MINMAX, const Extrema_ExtAlgo A=Extrema_ExtAlgo_Grad) | |
It calculates all the distances. The function F(u,v)=distance(P,S(u,v)) has an extremum when gradient(F)=0. The algorithm searches all the zeros inside the definition ranges of the surface. NbU and NbV are used to locate the close points to find the zeros. They must be great enough such that if there is N extrema, there will be N extrema between P and the grid. TolU et TolV are used to determine the conditions to stop the iterations; at the iteration number n: (Un - Un-1) < TolU and (Vn - Vn-1) < TolV . | |
void | Initialize (const Adaptor3d_Surface &S, const Standard_Integer NbU, const Standard_Integer NbV, const Standard_Real TolU, const Standard_Real TolV) |
void | Initialize (const Adaptor3d_Surface &S, const Standard_Integer NbU, const Standard_Integer NbV, const Standard_Real Umin, const Standard_Real Usup, const Standard_Real Vmin, const Standard_Real Vsup, const Standard_Real TolU, const Standard_Real TolV) |
void | Perform (const gp_Pnt &P) |
the algorithm is done with the point P. An exception is raised if the fields have not been initialized. | |
void | SetFlag (const Extrema_ExtFlag F) |
void | SetAlgo (const Extrema_ExtAlgo A) |
Standard_Boolean | IsDone () const |
Returns True if the distances are found. | |
Standard_Integer | NbExt () const |
Returns the number of extremum distances. | |
Standard_Real | SquareDistance (const Standard_Integer N) const |
Returns the value of the Nth resulting square distance. | |
const Extrema_POnSurf & | Point (const Standard_Integer N) const |
Returns the point of the Nth resulting distance. | |
It calculates all the extremum distances between a point and a surface. These distances can be minimum or maximum.
Extrema_GenExtPS::Extrema_GenExtPS | ( | ) |
Empty constructor.
Extrema_GenExtPS::~Extrema_GenExtPS | ( | ) |
Destructor.
Extrema_GenExtPS::Extrema_GenExtPS | ( | const gp_Pnt & | P, |
const Adaptor3d_Surface & | S, | ||
const Standard_Integer | NbU, | ||
const Standard_Integer | NbV, | ||
const Standard_Real | TolU, | ||
const Standard_Real | TolV, | ||
const Extrema_ExtFlag | F = Extrema_ExtFlag_MINMAX , |
||
const Extrema_ExtAlgo | A = Extrema_ExtAlgo_Grad |
||
) |
It calculates all the distances. The function F(u,v)=distance(P,S(u,v)) has an extremum when gradient(F)=0. The algorithm searches all the zeros inside the definition ranges of the surface. NbU and NbV are used to locate the close points to find the zeros. They must be great enough such that if there is N extrema, there will be N extrema between P and the grid. TolU et TolV are used to determine the conditions to stop the iterations; at the iteration number n: (Un - Un-1) < TolU and (Vn - Vn-1) < TolV .
Extrema_GenExtPS::Extrema_GenExtPS | ( | const gp_Pnt & | P, |
const Adaptor3d_Surface & | S, | ||
const Standard_Integer | NbU, | ||
const Standard_Integer | NbV, | ||
const Standard_Real | Umin, | ||
const Standard_Real | Usup, | ||
const Standard_Real | Vmin, | ||
const Standard_Real | Vsup, | ||
const Standard_Real | TolU, | ||
const Standard_Real | TolV, | ||
const Extrema_ExtFlag | F = Extrema_ExtFlag_MINMAX , |
||
const Extrema_ExtAlgo | A = Extrema_ExtAlgo_Grad |
||
) |
It calculates all the distances. The function F(u,v)=distance(P,S(u,v)) has an extremum when gradient(F)=0. The algorithm searches all the zeros inside the definition ranges of the surface. NbU and NbV are used to locate the close points to find the zeros. They must be great enough such that if there is N extrema, there will be N extrema between P and the grid. TolU et TolV are used to determine the conditions to stop the iterations; at the iteration number n: (Un - Un-1) < TolU and (Vn - Vn-1) < TolV .
void Extrema_GenExtPS::Initialize | ( | const Adaptor3d_Surface & | S, |
const Standard_Integer | NbU, | ||
const Standard_Integer | NbV, | ||
const Standard_Real | TolU, | ||
const Standard_Real | TolV | ||
) |
void Extrema_GenExtPS::Initialize | ( | const Adaptor3d_Surface & | S, |
const Standard_Integer | NbU, | ||
const Standard_Integer | NbV, | ||
const Standard_Real | Umin, | ||
const Standard_Real | Usup, | ||
const Standard_Real | Vmin, | ||
const Standard_Real | Vsup, | ||
const Standard_Real | TolU, | ||
const Standard_Real | TolV | ||
) |
Standard_Boolean Extrema_GenExtPS::IsDone | ( | ) | const |
Returns True if the distances are found.
Standard_Integer Extrema_GenExtPS::NbExt | ( | ) | const |
Returns the number of extremum distances.
the algorithm is done with the point P. An exception is raised if the fields have not been initialized.
const Extrema_POnSurf & Extrema_GenExtPS::Point | ( | const Standard_Integer | N | ) | const |
Returns the point of the Nth resulting distance.
void Extrema_GenExtPS::SetAlgo | ( | const Extrema_ExtAlgo | A | ) |
void Extrema_GenExtPS::SetFlag | ( | const Extrema_ExtFlag | F | ) |
Standard_Real Extrema_GenExtPS::SquareDistance | ( | const Standard_Integer | N | ) | const |
Returns the value of the Nth resulting square distance.