// 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 _IntAna_IntQuadQuad_HeaderFile #define _IntAna_IntQuadQuad_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _IntAna_Curve_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _gp_Pnt_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif class Standard_OutOfRange; class StdFail_NotDone; class Standard_DomainError; class gp_Cylinder; class IntAna_Quadric; class gp_Cone; class IntAna_Curve; class gp_Pnt; //! This class provides the analytic intersection between a
//! cylinder or a cone from gp and another quadric, as defined
//! in the class Quadric from IntAna.
//! This algorithm is used when the geometric intersection
//! (class QuadQuadGeo from IntAna) returns no geometric
//! solution.
//! The result of the intersection may be
//! - Curves as defined in the class Curve from IntAna
//! - Points (Pnt from gp)
class IntAna_IntQuadQuad { 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
Standard_EXPORT IntAna_IntQuadQuad(); //! Creates the intersection between a cylinder and a quadric .
//! Tol est a definir plus precisemment.
Standard_EXPORT IntAna_IntQuadQuad(const gp_Cylinder& C,const IntAna_Quadric& Q,const Standard_Real Tol); //! Creates the intersection between a cone and a quadric.
//! Tol est a definir plus precisemment.
Standard_EXPORT IntAna_IntQuadQuad(const gp_Cone& C,const IntAna_Quadric& Q,const Standard_Real Tol); //! Intersects a cylinder and a quadric .
//! Tol est a definir plus precisemment.
Standard_EXPORT void Perform(const gp_Cylinder& C,const IntAna_Quadric& Q,const Standard_Real Tol) ; //! Intersects a cone and a quadric.
//! Tol est a definir plus precisemment.
Standard_EXPORT void Perform(const gp_Cone& C,const IntAna_Quadric& Q,const Standard_Real Tol) ; //! Returns True if the computation was successful.
//!
Standard_Boolean IsDone() const; //! Returns TRUE if the cylinder, the cone or the sphere
//! is identical to the quadric.
//!
Standard_Boolean IdenticalElements() const; //! Returns the number of curves solution.
//!
Standard_Integer NbCurve() const; //! Returns the curve of range N.
//!
Standard_EXPORT const IntAna_Curve& Curve(const Standard_Integer N) const; //! Returns the number of contact point.
//!
Standard_Integer NbPnt() const; //! Returns the point of range N.
//!
Standard_EXPORT const gp_Pnt& Point(const Standard_Integer N) const; //! Returns the paramaters on the "explicit quadric"
//! (i.e the cylinder or the cone, the
//! first argument given to the constructor) of the
//! point of range N.
Standard_EXPORT void Parameters(const Standard_Integer N,Standard_Real& U1,Standard_Real& U2) const; //! Returns True if the Curve I shares its last bound
//! with another curve.
Standard_EXPORT Standard_Boolean HasNextCurve(const Standard_Integer I) const; //! If HasNextCurve(I) returns True, this function
//! returns the Index J of the curve which has a
//! common bound with the curve I. If Opposite ==
//! True , then the last parameter of the curve I, and
//! the last parameter of the curve J give the same
//! point. Else the last parameter of the curve I and
//! the first parameter of the curve J are the same
//! point.
Standard_EXPORT Standard_Integer NextCurve(const Standard_Integer I,Standard_Boolean& Opposite) const; //! Returns True if the Curve I shares its first bound
//! with another curve.
Standard_EXPORT Standard_Boolean HasPreviousCurve(const Standard_Integer I) const; //! if HasPreviousCurve(I) returns True, this function
//! returns the Index J of the curve which has a
//! common bound with the curve I. If Opposite ==
//! True , then the first parameter of the curve I,
//! and the first parameter of the curve J give the
//! same point. Else the first parameter of the curve
//! I and the last parameter of the curve J are the
//! same point.
Standard_EXPORT Standard_Integer PreviousCurve(const Standard_Integer I,Standard_Boolean& Opposite) const; protected: //! Set the next and previous fields. Private method.
Standard_EXPORT void InternalSetNextAndPrevious() ; Standard_Boolean done; Standard_Boolean identical; IntAna_Curve TheCurve[12]; Standard_Integer previouscurve[12]; Standard_Integer nextcurve[12]; Standard_Integer NbCurves; Standard_Integer Nbpoints; gp_Pnt Thepoints[2]; Standard_Integer myNbMaxCurves; Standard_Real myEpsilon; Standard_Real myEpsilonCoeffPolyNull; private: }; #include // other Inline functions and methods (like "C++: function call" methods) #endif