Open CASCADE Technology  7.5.0
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. More...
 
 IntAna_QuadQuadGeo (const gp_Pln &P1, const gp_Pln &P2, const Standard_Real TolAng, const Standard_Real 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). More...
 
void Perform (const gp_Pln &P1, const gp_Pln &P2, const Standard_Real TolAng, const Standard_Real 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). More...
 
 IntAna_QuadQuadGeo (const gp_Pln &P, const gp_Cylinder &C, const Standard_Real Tolang, const Standard_Real Tol, const Standard_Real 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. More...
 
void Perform (const gp_Pln &P, const gp_Cylinder &C, const Standard_Real Tolang, const Standard_Real Tol, const Standard_Real 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. More...
 
 IntAna_QuadQuadGeo (const gp_Pln &P, const gp_Sphere &S)
 Creates the intersection between a plane and a sphere. More...
 
void Perform (const gp_Pln &P, const gp_Sphere &S)
 Intersects a plane and a sphere. More...
 
 IntAna_QuadQuadGeo (const gp_Pln &P, const gp_Cone &C, const Standard_Real Tolang, const Standard_Real 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. More...
 
void Perform (const gp_Pln &P, const gp_Cone &C, const Standard_Real Tolang, const Standard_Real 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. More...
 
 IntAna_QuadQuadGeo (const gp_Cylinder &Cyl1, const gp_Cylinder &Cyl2, const Standard_Real Tol)
 Creates the intersection between two cylinders. More...
 
void Perform (const gp_Cylinder &Cyl1, const gp_Cylinder &Cyl2, const Standard_Real Tol)
 Intersects two cylinders. More...
 
 IntAna_QuadQuadGeo (const gp_Cylinder &Cyl, const gp_Sphere &Sph, const Standard_Real Tol)
 Creates the intersection between a Cylinder and a Sphere. More...
 
void Perform (const gp_Cylinder &Cyl, const gp_Sphere &Sph, const Standard_Real Tol)
 Intersects a cylinder and a sphere. More...
 
 IntAna_QuadQuadGeo (const gp_Cylinder &Cyl, const gp_Cone &Con, const Standard_Real Tol)
 Creates the intersection between a Cylinder and a Cone. More...
 
void Perform (const gp_Cylinder &Cyl, const gp_Cone &Con, const Standard_Real Tol)
 Intersects a cylinder and a cone. More...
 
 IntAna_QuadQuadGeo (const gp_Sphere &Sph1, const gp_Sphere &Sph2, const Standard_Real Tol)
 Creates the intersection between two Spheres. More...
 
void Perform (const gp_Sphere &Sph1, const gp_Sphere &Sph2, const Standard_Real Tol)
 Intersects a two spheres. More...
 
 IntAna_QuadQuadGeo (const gp_Sphere &Sph, const gp_Cone &Con, const Standard_Real Tol)
 Creates the intersection beween a Sphere and a Cone. More...
 
void Perform (const gp_Sphere &Sph, const gp_Cone &Con, const Standard_Real Tol)
 Intersects a sphere and a cone. More...
 
 IntAna_QuadQuadGeo (const gp_Cone &Con1, const gp_Cone &Con2, const Standard_Real Tol)
 Creates the intersection beween two cones. More...
 
void Perform (const gp_Cone &Con1, const gp_Cone &Con2, const Standard_Real Tol)
 Intersects two cones. More...
 
 IntAna_QuadQuadGeo (const gp_Pln &Pln, const gp_Torus &Tor, const Standard_Real Tol)
 Creates the intersection beween plane and torus. More...
 
void Perform (const gp_Pln &Pln, const gp_Torus &Tor, const Standard_Real Tol)
 Intersects plane and torus. More...
 
 IntAna_QuadQuadGeo (const gp_Cylinder &Cyl, const gp_Torus &Tor, const Standard_Real Tol)
 Creates the intersection beween cylinder and torus. More...
 
void Perform (const gp_Cylinder &Cyl, const gp_Torus &Tor, const Standard_Real Tol)
 Intersects cylinder and torus. More...
 
 IntAna_QuadQuadGeo (const gp_Cone &Con, const gp_Torus &Tor, const Standard_Real Tol)
 Creates the intersection beween cone and torus. More...
 
void Perform (const gp_Cone &Con, const gp_Torus &Tor, const Standard_Real Tol)
 Intersects cone and torus. More...
 
 IntAna_QuadQuadGeo (const gp_Sphere &Sph, const gp_Torus &Tor, const Standard_Real Tol)
 Creates the intersection beween sphere and torus. More...
 
void Perform (const gp_Sphere &Sph, const gp_Torus &Tor, const Standard_Real Tol)
 Intersects sphere and torus. More...
 
 IntAna_QuadQuadGeo (const gp_Torus &Tor1, const gp_Torus &Tor2, const Standard_Real Tol)
 Creates the intersection beween two toruses. More...
 
void Perform (const gp_Torus &Tor1, const gp_Torus &Tor2, const Standard_Real Tol)
 Intersects two toruses. More...
 
Standard_Boolean IsDone () const
 Returns Standard_True if the computation was successful. More...
 
IntAna_ResultType TypeInter () const
 Returns the type of intersection. More...
 
Standard_Integer NbSolutions () const
 Returns the number of interesections. The possible intersections are : More...
 
gp_Pnt Point (const Standard_Integer Num) const
 Returns the point solution of range Num. More...
 
gp_Lin Line (const Standard_Integer Num) const
 Returns the line solution of range Num. More...
 
gp_Circ Circle (const Standard_Integer Num) const
 Returns the circle solution of range Num. More...
 
gp_Elips Ellipse (const Standard_Integer Num) const
 Returns the ellipse solution of range Num. More...
 
gp_Parab Parabola (const Standard_Integer Num) const
 Returns the parabola solution of range Num. More...
 
gp_Hypr Hyperbola (const Standard_Integer Num) const
 Returns the hyperbola solution of range Num. More...
 
Standard_Boolean HasCommonGen () const
 
const gp_PntPChar () const
 

Protected Member Functions

void InitTolerances ()
 Initialize the values of inner tolerances. More...
 

Protected Attributes

Standard_Boolean done
 
Standard_Integer 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
 
Standard_Real param1
 
Standard_Real param2
 
Standard_Real param3
 
Standard_Real param4
 
Standard_Real param1bis
 
Standard_Real param2bis
 
Standard_Real myEPSILON_DISTANCE
 
Standard_Real myEPSILON_ANGLE_CONE
 
Standard_Real myEPSILON_MINI_CIRCLE_RADIUS
 
Standard_Real myEPSILON_CYLINDER_DELTA_RADIUS
 
Standard_Real myEPSILON_CYLINDER_DELTA_DISTANCE
 
Standard_Real myEPSILON_AXES_PARA
 
Standard_Boolean 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 Standard_Real  TolAng,
const Standard_Real  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 Standard_Real  Tolang,
const Standard_Real  Tol,
const Standard_Real  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 Standard_Real  Tolang,
const Standard_Real  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 Standard_Real  Tol 
)

Creates the intersection between two cylinders.

◆ IntAna_QuadQuadGeo() [7/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Cylinder Cyl,
const gp_Sphere Sph,
const Standard_Real  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 Standard_Real  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 Standard_Real  Tol 
)

Creates the intersection between two Spheres.

◆ IntAna_QuadQuadGeo() [10/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Sphere Sph,
const gp_Cone Con,
const Standard_Real  Tol 
)

Creates the intersection beween a Sphere and a Cone.

◆ IntAna_QuadQuadGeo() [11/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Cone Con1,
const gp_Cone Con2,
const Standard_Real  Tol 
)

Creates the intersection beween two cones.

◆ IntAna_QuadQuadGeo() [12/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Pln Pln,
const gp_Torus Tor,
const Standard_Real  Tol 
)

Creates the intersection beween plane and torus.

◆ IntAna_QuadQuadGeo() [13/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Cylinder Cyl,
const gp_Torus Tor,
const Standard_Real  Tol 
)

Creates the intersection beween cylinder and torus.

◆ IntAna_QuadQuadGeo() [14/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Cone Con,
const gp_Torus Tor,
const Standard_Real  Tol 
)

Creates the intersection beween cone and torus.

◆ IntAna_QuadQuadGeo() [15/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Sphere Sph,
const gp_Torus Tor,
const Standard_Real  Tol 
)

Creates the intersection beween sphere and torus.

◆ IntAna_QuadQuadGeo() [16/16]

IntAna_QuadQuadGeo::IntAna_QuadQuadGeo ( const gp_Torus Tor1,
const gp_Torus Tor2,
const Standard_Real  Tol 
)

Creates the intersection beween two toruses.

Member Function Documentation

◆ Circle()

gp_Circ IntAna_QuadQuadGeo::Circle ( const Standard_Integer  Num) const

Returns the circle solution of range Num.

◆ Ellipse()

gp_Elips IntAna_QuadQuadGeo::Ellipse ( const Standard_Integer  Num) const

Returns the ellipse solution of range Num.

◆ HasCommonGen()

Standard_Boolean IntAna_QuadQuadGeo::HasCommonGen ( ) const

◆ Hyperbola()

gp_Hypr IntAna_QuadQuadGeo::Hyperbola ( const Standard_Integer  Num) const

Returns the hyperbola solution of range Num.

◆ InitTolerances()

void IntAna_QuadQuadGeo::InitTolerances ( )
protected

Initialize the values of inner tolerances.

◆ IsDone()

Standard_Boolean IntAna_QuadQuadGeo::IsDone ( ) const

Returns Standard_True if the computation was successful.

◆ Line()

gp_Lin IntAna_QuadQuadGeo::Line ( const Standard_Integer  Num) const

Returns the line solution of range Num.

◆ NbSolutions()

Standard_Integer IntAna_QuadQuadGeo::NbSolutions ( ) const

Returns the number of interesections. 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 Standard_Integer  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_Pln P1,
const gp_Pln P2,
const Standard_Real  TolAng,
const Standard_Real  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() [2/15]

void IntAna_QuadQuadGeo::Perform ( const gp_Pln P,
const gp_Cylinder C,
const Standard_Real  Tolang,
const Standard_Real  Tol,
const Standard_Real  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() [3/15]

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

Intersects a plane and a sphere.

◆ Perform() [4/15]

void IntAna_QuadQuadGeo::Perform ( const gp_Pln P,
const gp_Cone C,
const Standard_Real  Tolang,
const Standard_Real  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() [5/15]

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

Intersects two cylinders.

◆ Perform() [6/15]

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

Intersects a cylinder and a sphere.

◆ Perform() [7/15]

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

Intersects a cylinder and a cone.

◆ Perform() [8/15]

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

Intersects a two spheres.

◆ Perform() [9/15]

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

Intersects a sphere and a cone.

◆ Perform() [10/15]

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

Intersects two cones.

◆ Perform() [11/15]

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

Intersects plane and torus.

◆ Perform() [12/15]

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

Intersects cylinder and torus.

◆ Perform() [13/15]

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

Intersects cone and torus.

◆ Perform() [14/15]

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

Intersects sphere and torus.

◆ Perform() [15/15]

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

Intersects two toruses.

◆ Point()

gp_Pnt IntAna_QuadQuadGeo::Point ( const Standard_Integer  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

Standard_Boolean IntAna_QuadQuadGeo::done
protected

◆ myCommonGen

Standard_Boolean IntAna_QuadQuadGeo::myCommonGen
protected

◆ myEPSILON_ANGLE_CONE

Standard_Real IntAna_QuadQuadGeo::myEPSILON_ANGLE_CONE
protected

◆ myEPSILON_AXES_PARA

Standard_Real IntAna_QuadQuadGeo::myEPSILON_AXES_PARA
protected

◆ myEPSILON_CYLINDER_DELTA_DISTANCE

Standard_Real IntAna_QuadQuadGeo::myEPSILON_CYLINDER_DELTA_DISTANCE
protected

◆ myEPSILON_CYLINDER_DELTA_RADIUS

Standard_Real IntAna_QuadQuadGeo::myEPSILON_CYLINDER_DELTA_RADIUS
protected

◆ myEPSILON_DISTANCE

Standard_Real IntAna_QuadQuadGeo::myEPSILON_DISTANCE
protected

◆ myEPSILON_MINI_CIRCLE_RADIUS

Standard_Real IntAna_QuadQuadGeo::myEPSILON_MINI_CIRCLE_RADIUS
protected

◆ myPChar

gp_Pnt IntAna_QuadQuadGeo::myPChar
protected

◆ nbint

Standard_Integer IntAna_QuadQuadGeo::nbint
protected

◆ param1

Standard_Real IntAna_QuadQuadGeo::param1
protected

◆ param1bis

Standard_Real IntAna_QuadQuadGeo::param1bis
protected

◆ param2

Standard_Real IntAna_QuadQuadGeo::param2
protected

◆ param2bis

Standard_Real IntAna_QuadQuadGeo::param2bis
protected

◆ param3

Standard_Real IntAna_QuadQuadGeo::param3
protected

◆ param4

Standard_Real 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: