// 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 _IntPatch_ImpImpIntersection_HeaderFile #define _IntPatch_ImpImpIntersection_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _IntPatch_SequenceOfPoint_HeaderFile #include #endif #ifndef _IntPatch_SequenceOfLine_HeaderFile #include #endif #ifndef _IntPatch_TheSOnBounds_HeaderFile #include #endif #ifndef _Handle_Adaptor3d_HSurface_HeaderFile #include #endif #ifndef _Handle_Adaptor3d_TopolTool_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Handle_IntPatch_Line_HeaderFile #include #endif class StdFail_NotDone; class Standard_OutOfRange; class Standard_DomainError; class Standard_ConstructionError; class Adaptor3d_HSurface; class Adaptor3d_TopolTool; class IntPatch_Point; class IntPatch_Line; //! Implementation of the intersection between two
//! quadric patches : Plane, Cone, Cylinder or Sphere.
class IntPatch_ImpImpIntersection { 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); } Standard_EXPORT IntPatch_ImpImpIntersection(); Standard_EXPORT IntPatch_ImpImpIntersection(const Handle(Adaptor3d_HSurface)& S1,const Handle(Adaptor3d_TopolTool)& D1,const Handle(Adaptor3d_HSurface)& S2,const Handle(Adaptor3d_TopolTool)& D2,const Standard_Real TolArc,const Standard_Real TolTang); Standard_EXPORT void Perform(const Handle(Adaptor3d_HSurface)& S1,const Handle(Adaptor3d_TopolTool)& D1,const Handle(Adaptor3d_HSurface)& S2,const Handle(Adaptor3d_TopolTool)& D2,const Standard_Real TolArc,const Standard_Real TolTang) ; //! Returns True if the calculus was succesfull.
Standard_Boolean IsDone() const; //! Returns true if the is no intersection.
Standard_Boolean IsEmpty() const; //! Returns True if the two patches are considered as
//! entierly tangent, i-e every restriction arc of one
//! patch is inside the geometric base of the otehr patch.
Standard_Boolean TangentFaces() const; //! Returns True when the TangentFaces returns True and the
//! normal vectors evaluated at a point on the first and the
//! second surface are opposite.
//! The exception DomainError is raised if TangentFaces
//! returns False.
Standard_Boolean OppositeFaces() const; //! Returns the number of "single" points.
Standard_Integer NbPnts() const; //! Returns the point of range Index.
//! An exception is raised if Index<=0 or Index>NbPnt.
const IntPatch_Point& Point(const Standard_Integer Index) const; //! Returns the number of intersection lines.
Standard_Integer NbLines() const; //! Returns the line of range Index.
//! An exception is raised if Index<=0 or Index>NbLine.
const Handle_IntPatch_Line& Line(const Standard_Integer Index) const; protected: private: Standard_Boolean done; Standard_Boolean empt; Standard_Boolean tgte; Standard_Boolean oppo; Standard_Boolean reverse; IntPatch_SequenceOfPoint spnt; IntPatch_SequenceOfLine slin; IntPatch_TheSOnBounds solrst; }; #include // other Inline functions and methods (like "C++: function call" methods) #endif