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

Geometric intersections between two natural quadrics (Sphere , Cylinder , Cone , Pln from gp). The possible intersections are : More...

#include <IntAna_QuadQuadGeo.hxx>

Public Member Functions

 IntAna_QuadQuadGeo ()
 Empty constructor.
 
 IntAna_QuadQuadGeo (const gp_Pln &P1, const gp_Pln &P2, const double TolAng, const double Tol)
 Creates the intersection between two planes. TolAng is the angular tolerance used to determine if the planes are parallel. Tol is the tolerance used to determine if the planes are identical (only when they are parallel).
 
void Perform (const gp_Pln &P1, const gp_Pln &P2, const double TolAng, const double Tol)
 Intersects two planes. TolAng is the angular tolerance used to determine if the planes are parallel. Tol is the tolerance used to determine if the planes are identical (only when they are parallel).
 
 IntAna_QuadQuadGeo (const gp_Pln &P, const gp_Cylinder &C, const double Tolang, const double Tol, const double H=0)
 Creates the intersection between a plane and a cylinder. TolAng is the angular tolerance used to determine if the axis of the cylinder is parallel to the plane. Tol is the tolerance used to determine if the result is a circle or an ellipse. If the maximum distance between the ellipse solution and the circle centered at the ellipse center is less than Tol, the result will be the circle. H is the height of the cylinder <Cyl>. It is used to check whether the plane and cylinder are parallel.
 
void Perform (const gp_Pln &P, const gp_Cylinder &C, const double Tolang, const double Tol, const double H=0)
 Intersects a plane and a cylinder. TolAng is the angular tolerance used to determine if the axis of the cylinder is parallel to the plane. Tol is the tolerance used to determine if the result is a circle or an ellipse. If the maximum distance between the ellipse solution and the circle centered at the ellipse center is less than Tol, the result will be the circle. H is the height of the cylinder <Cyl>. It is used to check whether the plane and cylinder are parallel.
 
 IntAna_QuadQuadGeo (const gp_Pln &P, const gp_Sphere &S)
 Creates the intersection between a plane and a sphere.
 
void Perform (const gp_Pln &P, const gp_Sphere &S)
 Intersects a plane and a sphere.
 
 IntAna_QuadQuadGeo (const gp_Pln &P, const gp_Cone &C, const double Tolang, const double Tol)
 Creates the intersection between a plane and a cone. TolAng is the angular tolerance used to determine if the axis of the cone is parallel or perpendicular to the plane, and if the generating line of the cone is parallel to the plane. Tol is the tolerance used to determine if the apex of the cone is in the plane.
 
void Perform (const gp_Pln &P, const gp_Cone &C, const double Tolang, const double Tol)
 Intersects a plane and a cone. TolAng is the angular tolerance used to determine if the axis of the cone is parallel or perpendicular to the plane, and if the generating line of the cone is parallel to the plane. Tol is the tolerance used to determine if the apex of the cone is in the plane.
 
 IntAna_QuadQuadGeo (const gp_Cylinder &Cyl1, const gp_Cylinder &Cyl2, const double Tol)
 Creates the intersection between two cylinders.
 
void Perform (const gp_Cylinder &Cyl1, const gp_Cylinder &Cyl2, const double Tol)
 Intersects two cylinders.
 
 IntAna_QuadQuadGeo (const gp_Cylinder &Cyl, const gp_Sphere &Sph, const double Tol)
 Creates the intersection between a Cylinder and a Sphere.
 
void Perform (const gp_Cylinder &Cyl, const gp_Sphere &Sph, const double Tol)
 Intersects a cylinder and a sphere.
 
 IntAna_QuadQuadGeo (const gp_Cylinder &Cyl, const gp_Cone &Con, const double Tol)
 Creates the intersection between a Cylinder and a Cone.
 
void Perform (const gp_Cylinder &Cyl, const gp_Cone &Con, const double Tol)
 Intersects a cylinder and a cone.
 
 IntAna_QuadQuadGeo (const gp_Sphere &Sph1, const gp_Sphere &Sph2, const double Tol)
 Creates the intersection between two Spheres.
 
void Perform (const gp_Sphere &Sph1, const gp_Sphere &Sph2, const double Tol)
 Intersects a two spheres.
 
 IntAna_QuadQuadGeo (const gp_Sphere &Sph, const gp_Cone &Con, const double Tol)
 Creates the intersection between a Sphere and a Cone.
 
void Perform (const gp_Sphere &Sph, const gp_Cone &Con, const double Tol)
 Intersects a sphere and a cone.
 
 IntAna_QuadQuadGeo (const gp_Cone &Con1, const gp_Cone &Con2, const double Tol)
 Creates the intersection between two cones.
 
void Perform (const gp_Cone &Con1, const gp_Cone &Con2, const double Tol)
 Intersects two cones.
 
 IntAna_QuadQuadGeo (const gp_Pln &Pln, const gp_Torus &Tor, const double Tol)
 Creates the intersection between plane and torus.
 
void Perform (const gp_Pln &Pln, const gp_Torus &Tor, const double Tol)
 Intersects plane and torus.
 
 IntAna_QuadQuadGeo (const gp_Cylinder &Cyl, const gp_Torus &Tor, const double Tol)
 Creates the intersection between cylinder and torus.
 
void Perform (const gp_Cylinder &Cyl, const gp_Torus &Tor, const double Tol)
 Intersects cylinder and torus.
 
 IntAna_QuadQuadGeo (const gp_Cone &Con, const gp_Torus &Tor, const double Tol)
 Creates the intersection between cone and torus.
 
void Perform (const gp_Cone &Con, const gp_Torus &Tor, const double Tol)
 Intersects cone and torus.
 
 IntAna_QuadQuadGeo (const gp_Sphere &Sph, const gp_Torus &Tor, const double Tol)
 Creates the intersection between sphere and torus.
 
void Perform (const gp_Sphere &Sph, const gp_Torus &Tor, const double Tol)
 Intersects sphere and torus.
 
 IntAna_QuadQuadGeo (const gp_Torus &Tor1, const gp_Torus &Tor2, const double Tol)
 Creates the intersection between two toruses.
 
void Perform (const gp_Torus &Tor1, const gp_Torus &Tor2, const double Tol)
 Intersects two toruses.
 
bool IsDone () const
 Returns true if the computation was successful.
 
IntAna_ResultType TypeInter () const
 Returns the type of intersection.
 
int NbSolutions () const
 Returns the number of intersections. The possible intersections are :
 
gp_Pnt Point (const int Num) const
 Returns the point solution of range Num.
 
gp_Lin Line (const int Num) const
 Returns the line solution of range Num.
 
gp_Circ Circle (const int Num) const
 Returns the circle solution of range Num.
 
gp_Elips Ellipse (const int Num) const
 Returns the ellipse solution of range Num.
 
gp_Parab Parabola (const int Num) const
 Returns the parabola solution of range Num.
 
gp_Hypr Hyperbola (const int Num) const
 Returns the hyperbola solution of range Num.
 
bool HasCommonGen () const
 
const gp_PntPChar () const
 

Protected Member Functions

void InitTolerances ()
 Initialize the values of inner tolerances.
 

Protected Attributes

bool done
 
int nbint
 
IntAna_ResultType typeres
 
gp_Pnt pt1
 
gp_Pnt pt2
 
gp_Pnt pt3
 
gp_Pnt pt4
 
gp_Dir dir1
 
gp_Dir dir2
 
gp_Dir dir3
 
gp_Dir dir4
 
double param1
 
double param2
 
double param3
 
double param4
 
double param1bis
 
double param2bis
 
double myEPSILON_DISTANCE
 
double myEPSILON_ANGLE_CONE
 
double myEPSILON_MINI_CIRCLE_RADIUS
 
double myEPSILON_CYLINDER_DELTA_RADIUS
 
double myEPSILON_CYLINDER_DELTA_DISTANCE
 
double myEPSILON_AXES_PARA
 
bool myCommonGen
 
gp_Pnt myPChar
 

Detailed Description

Geometric intersections between two natural quadrics (Sphere , Cylinder , Cone , Pln from gp). The possible intersections are :

Constructor & Destructor Documentation

◆ IntAna_QuadQuadGeo() [1/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( )

Empty constructor.

◆ IntAna_QuadQuadGeo() [2/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Pln & P1,
const gp_Pln & P2,
const double TolAng,
const double Tol )

Creates the intersection between two planes. TolAng is the angular tolerance used to determine if the planes are parallel. Tol is the tolerance used to determine if the planes are identical (only when they are parallel).

◆ IntAna_QuadQuadGeo() [3/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Pln & P,
const gp_Cylinder & C,
const double Tolang,
const double Tol,
const double H = 0 )

Creates the intersection between a plane and a cylinder. TolAng is the angular tolerance used to determine if the axis of the cylinder is parallel to the plane. Tol is the tolerance used to determine if the result is a circle or an ellipse. If the maximum distance between the ellipse solution and the circle centered at the ellipse center is less than Tol, the result will be the circle. H is the height of the cylinder <Cyl>. It is used to check whether the plane and cylinder are parallel.

◆ IntAna_QuadQuadGeo() [4/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Pln & P,
const gp_Sphere & S )

Creates the intersection between a plane and a sphere.

◆ IntAna_QuadQuadGeo() [5/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Pln & P,
const gp_Cone & C,
const double Tolang,
const double Tol )

Creates the intersection between a plane and a cone. TolAng is the angular tolerance used to determine if the axis of the cone is parallel or perpendicular to the plane, and if the generating line of the cone is parallel to the plane. Tol is the tolerance used to determine if the apex of the cone is in the plane.

◆ IntAna_QuadQuadGeo() [6/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Cylinder & Cyl1,
const gp_Cylinder & Cyl2,
const double Tol )

Creates the intersection between two cylinders.

◆ IntAna_QuadQuadGeo() [7/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Cylinder & Cyl,
const gp_Sphere & Sph,
const double Tol )

Creates the intersection between a Cylinder and a Sphere.

◆ IntAna_QuadQuadGeo() [8/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Cylinder & Cyl,
const gp_Cone & Con,
const double Tol )

Creates the intersection between a Cylinder and a Cone.

◆ IntAna_QuadQuadGeo() [9/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Sphere & Sph1,
const gp_Sphere & Sph2,
const double Tol )

Creates the intersection between two Spheres.

◆ IntAna_QuadQuadGeo() [10/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Sphere & Sph,
const gp_Cone & Con,
const double Tol )

Creates the intersection between a Sphere and a Cone.

◆ IntAna_QuadQuadGeo() [11/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Cone & Con1,
const gp_Cone & Con2,
const double Tol )

Creates the intersection between two cones.

◆ IntAna_QuadQuadGeo() [12/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Pln & Pln,
const gp_Torus & Tor,
const double Tol )

Creates the intersection between plane and torus.

◆ IntAna_QuadQuadGeo() [13/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Cylinder & Cyl,
const gp_Torus & Tor,
const double Tol )

Creates the intersection between cylinder and torus.

◆ IntAna_QuadQuadGeo() [14/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Cone & Con,
const gp_Torus & Tor,
const double Tol )

Creates the intersection between cone and torus.

◆ IntAna_QuadQuadGeo() [15/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Sphere & Sph,
const gp_Torus & Tor,
const double Tol )

Creates the intersection between sphere and torus.

◆ IntAna_QuadQuadGeo() [16/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Torus & Tor1,
const gp_Torus & Tor2,
const double Tol )

Creates the intersection between two toruses.

Member Function Documentation

◆ Circle()

gp_Circ IntAna_QuadQuadGeo::Circle ( const int Num) const

Returns the circle solution of range Num.

◆ Ellipse()

gp_Elips IntAna_QuadQuadGeo::Ellipse ( const int Num) const

Returns the ellipse solution of range Num.

◆ HasCommonGen()

bool IntAna_QuadQuadGeo::HasCommonGen ( ) const

◆ Hyperbola()

gp_Hypr IntAna_QuadQuadGeo::Hyperbola ( const int Num) const

Returns the hyperbola solution of range Num.

◆ InitTolerances()

void IntAna_QuadQuadGeo::InitTolerances ( )
protected

Initialize the values of inner tolerances.

◆ IsDone()

bool IntAna_QuadQuadGeo::IsDone ( ) const

Returns true if the computation was successful.

◆ Line()

gp_Lin IntAna_QuadQuadGeo::Line ( const int Num) const

Returns the line solution of range Num.

◆ NbSolutions()

int IntAna_QuadQuadGeo::NbSolutions ( ) const

Returns the number of intersections. The possible intersections are :

  • 1 point
  • 1 or 2 line(s)
  • 1 Point and 1 Line
  • 1 circle
  • 1 ellipse
  • 1 parabola
  • 1 or 2 hyperbola(s).

◆ Parabola()

gp_Parab IntAna_QuadQuadGeo::Parabola ( const int Num) const

Returns the parabola solution of range Num.

◆ PChar()

const gp_Pnt & IntAna_QuadQuadGeo::PChar ( ) const

◆ Perform() [1/15]

void IntAna_QuadQuadGeo::Perform ( const gp_Cone & Con,
const gp_Torus & Tor,
const double Tol )

Intersects cone and torus.

◆ Perform() [2/15]

void IntAna_QuadQuadGeo::Perform ( const gp_Cone & Con1,
const gp_Cone & Con2,
const double Tol )

Intersects two cones.

◆ Perform() [3/15]

void IntAna_QuadQuadGeo::Perform ( const gp_Cylinder & Cyl,
const gp_Cone & Con,
const double Tol )

Intersects a cylinder and a cone.

◆ Perform() [4/15]

void IntAna_QuadQuadGeo::Perform ( const gp_Cylinder & Cyl,
const gp_Sphere & Sph,
const double Tol )

Intersects a cylinder and a sphere.

◆ Perform() [5/15]

void IntAna_QuadQuadGeo::Perform ( const gp_Cylinder & Cyl,
const gp_Torus & Tor,
const double Tol )

Intersects cylinder and torus.

◆ Perform() [6/15]

void IntAna_QuadQuadGeo::Perform ( const gp_Cylinder & Cyl1,
const gp_Cylinder & Cyl2,
const double Tol )

Intersects two cylinders.

◆ Perform() [7/15]

void IntAna_QuadQuadGeo::Perform ( const gp_Pln & P,
const gp_Cone & C,
const double Tolang,
const double Tol )

Intersects a plane and a cone. TolAng is the angular tolerance used to determine if the axis of the cone is parallel or perpendicular to the plane, and if the generating line of the cone is parallel to the plane. Tol is the tolerance used to determine if the apex of the cone is in the plane.

◆ Perform() [8/15]

void IntAna_QuadQuadGeo::Perform ( const gp_Pln & P,
const gp_Cylinder & C,
const double Tolang,
const double Tol,
const double H = 0 )

Intersects a plane and a cylinder. TolAng is the angular tolerance used to determine if the axis of the cylinder is parallel to the plane. Tol is the tolerance used to determine if the result is a circle or an ellipse. If the maximum distance between the ellipse solution and the circle centered at the ellipse center is less than Tol, the result will be the circle. H is the height of the cylinder <Cyl>. It is used to check whether the plane and cylinder are parallel.

◆ Perform() [9/15]

void IntAna_QuadQuadGeo::Perform ( const gp_Pln & P,
const gp_Sphere & S )

Intersects a plane and a sphere.

◆ Perform() [10/15]

void IntAna_QuadQuadGeo::Perform ( const gp_Pln & P1,
const gp_Pln & P2,
const double TolAng,
const double Tol )

Intersects two planes. TolAng is the angular tolerance used to determine if the planes are parallel. Tol is the tolerance used to determine if the planes are identical (only when they are parallel).

◆ Perform() [11/15]

void IntAna_QuadQuadGeo::Perform ( const gp_Pln & Pln,
const gp_Torus & Tor,
const double Tol )

Intersects plane and torus.

◆ Perform() [12/15]

void IntAna_QuadQuadGeo::Perform ( const gp_Sphere & Sph,
const gp_Cone & Con,
const double Tol )

Intersects a sphere and a cone.

◆ Perform() [13/15]

void IntAna_QuadQuadGeo::Perform ( const gp_Sphere & Sph,
const gp_Torus & Tor,
const double Tol )

Intersects sphere and torus.

◆ Perform() [14/15]

void IntAna_QuadQuadGeo::Perform ( const gp_Sphere & Sph1,
const gp_Sphere & Sph2,
const double Tol )

Intersects a two spheres.

◆ Perform() [15/15]

void IntAna_QuadQuadGeo::Perform ( const gp_Torus & Tor1,
const gp_Torus & Tor2,
const double Tol )

Intersects two toruses.

◆ Point()

gp_Pnt IntAna_QuadQuadGeo::Point ( const int Num) const

Returns the point solution of range Num.

◆ TypeInter()

IntAna_ResultType IntAna_QuadQuadGeo::TypeInter ( ) const

Returns the type of intersection.

Field Documentation

◆ dir1

gp_Dir IntAna_QuadQuadGeo::dir1
protected

◆ dir2

gp_Dir IntAna_QuadQuadGeo::dir2
protected

◆ dir3

gp_Dir IntAna_QuadQuadGeo::dir3
protected

◆ dir4

gp_Dir IntAna_QuadQuadGeo::dir4
protected

◆ done

bool IntAna_QuadQuadGeo::done
protected

◆ myCommonGen

bool IntAna_QuadQuadGeo::myCommonGen
protected

◆ myEPSILON_ANGLE_CONE

double IntAna_QuadQuadGeo::myEPSILON_ANGLE_CONE
protected

◆ myEPSILON_AXES_PARA

double IntAna_QuadQuadGeo::myEPSILON_AXES_PARA
protected

◆ myEPSILON_CYLINDER_DELTA_DISTANCE

double IntAna_QuadQuadGeo::myEPSILON_CYLINDER_DELTA_DISTANCE
protected

◆ myEPSILON_CYLINDER_DELTA_RADIUS

double IntAna_QuadQuadGeo::myEPSILON_CYLINDER_DELTA_RADIUS
protected

◆ myEPSILON_DISTANCE

double IntAna_QuadQuadGeo::myEPSILON_DISTANCE
protected

◆ myEPSILON_MINI_CIRCLE_RADIUS

double IntAna_QuadQuadGeo::myEPSILON_MINI_CIRCLE_RADIUS
protected

◆ myPChar

gp_Pnt IntAna_QuadQuadGeo::myPChar
protected

◆ nbint

int IntAna_QuadQuadGeo::nbint
protected

◆ param1

double IntAna_QuadQuadGeo::param1
protected

◆ param1bis

double IntAna_QuadQuadGeo::param1bis
protected

◆ param2

double IntAna_QuadQuadGeo::param2
protected

◆ param2bis

double IntAna_QuadQuadGeo::param2bis
protected

◆ param3

double IntAna_QuadQuadGeo::param3
protected

◆ param4

double IntAna_QuadQuadGeo::param4
protected

◆ pt1

gp_Pnt IntAna_QuadQuadGeo::pt1
protected

◆ pt2

gp_Pnt IntAna_QuadQuadGeo::pt2
protected

◆ pt3

gp_Pnt IntAna_QuadQuadGeo::pt3
protected

◆ pt4

gp_Pnt IntAna_QuadQuadGeo::pt4
protected

◆ typeres

IntAna_ResultType IntAna_QuadQuadGeo::typeres
protected

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