// This file is generated by WOK (CPPExt). // Please do not edit this file; modify original file instead. // The copyright and license terms as defined for the original file apply to // this header file considered to be the "object code" form of the original source. #ifndef _IntAna2d_AnaIntersection_HeaderFile #define _IntAna2d_AnaIntersection_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _IntAna2d_IntPoint_HeaderFile #include #endif class StdFail_NotDone; class Standard_OutOfRange; class gp_Lin2d; class gp_Circ2d; class IntAna2d_Conic; class gp_Elips2d; class gp_Parab2d; class gp_Hypr2d; class IntAna2d_IntPoint; //! Implementation of the analytical intersection between:
//! - two Lin2d,
//! - two Circ2d,
//! - a Lin2d and a Circ2d,
//! - an element of gp (Lin2d, Circ2d, Elips2d, Parab2d, Hypr2d)
//! and another conic.
//! No tolerance is given for all the intersections: the tolerance
//! will be the "precision machine".
class IntAna2d_AnaIntersection { public: void* operator new(size_t,void* anAddress) { return anAddress; } void* operator new(size_t size) { return Standard::Allocate(size); } void operator delete(void *anAddress) { if (anAddress) Standard::Free((Standard_Address&)anAddress); } //! Empty constructor. IsDone returns False.
Standard_EXPORT IntAna2d_AnaIntersection(); //! Intersection between two lines.
Standard_EXPORT IntAna2d_AnaIntersection(const gp_Lin2d& L1,const gp_Lin2d& L2); //! Intersection between two circles.
Standard_EXPORT IntAna2d_AnaIntersection(const gp_Circ2d& C1,const gp_Circ2d& C2); //! Intersection between a line and a circle.
Standard_EXPORT IntAna2d_AnaIntersection(const gp_Lin2d& L,const gp_Circ2d& C); //! Intersection between a line and a conic.
Standard_EXPORT IntAna2d_AnaIntersection(const gp_Lin2d& L,const IntAna2d_Conic& C); //! Intersection between a circle and another conic.
Standard_EXPORT IntAna2d_AnaIntersection(const gp_Circ2d& C,const IntAna2d_Conic& Co); //! Intersection between an ellipse and another conic.
Standard_EXPORT IntAna2d_AnaIntersection(const gp_Elips2d& E,const IntAna2d_Conic& C); //! Intersection between a parabola and another conic.
Standard_EXPORT IntAna2d_AnaIntersection(const gp_Parab2d& P,const IntAna2d_Conic& C); //! Intersection between an hyperbola and another conic.
Standard_EXPORT IntAna2d_AnaIntersection(const gp_Hypr2d& H,const IntAna2d_Conic& C); //! Intersection between two lines.
Standard_EXPORT void Perform(const gp_Lin2d& L1,const gp_Lin2d& L2) ; //! Intersection between two circles.
Standard_EXPORT void Perform(const gp_Circ2d& C1,const gp_Circ2d& C2) ; //! Intersection between a line and a circle.
Standard_EXPORT void Perform(const gp_Lin2d& L,const gp_Circ2d& C) ; //! Intersection between a line and a conic.
Standard_EXPORT void Perform(const gp_Lin2d& L,const IntAna2d_Conic& C) ; //! Intersection between a circle and another conic.
Standard_EXPORT void Perform(const gp_Circ2d& C,const IntAna2d_Conic& Co) ; //! Intersection between an ellipse and another conic.
Standard_EXPORT void Perform(const gp_Elips2d& E,const IntAna2d_Conic& C) ; //! Intersection between a parabola and another conic.
Standard_EXPORT void Perform(const gp_Parab2d& P,const IntAna2d_Conic& C) ; //! Intersection between an hyperbola and another conic.
Standard_EXPORT void Perform(const gp_Hypr2d& H,const IntAna2d_Conic& C) ; //! Returns TRUE if the computation was succesfull.
Standard_Boolean IsDone() const; //! Returns TRUE when there is no intersection, i-e
//! - no intersection point
//! - the elements are not identical.
//! The element may be parallel in this case.
Standard_Boolean IsEmpty() const; //! For the intersection between an element of gp and a conic
//! known by an implicit equation, the result will be TRUE
//! if the element of gp verifies the implicit equation.
//! For the intersection between two Lin2d or two Circ2d, the
//! result will be TRUE if the elements are identical.
//! The function returns FALSE in all the other cases.
Standard_Boolean IdenticalElements() const; //! For the intersection between two Lin2d or two Circ2d,
//! the function returns TRUE if the elements are parallel.
//! The function returns FALSE in all the other cases.
Standard_Boolean ParallelElements() const; //! returns the number of IntPoint between the 2 curves.
Standard_Integer NbPoints() const; //! returns the intersection point of range N;
//! If (N<=0) or (N>NbPoints), an exception is raised.
const IntAna2d_IntPoint& Point(const Standard_Integer N) const; protected: private: Standard_Boolean done; Standard_Boolean para; Standard_Boolean iden; Standard_Boolean empt; Standard_Integer nbp; IntAna2d_IntPoint lpnt[4]; }; #include // other Inline functions and methods (like "C++: function call" methods) #endif