1 // Created on: 1994-03-23
2 // Created by: Jean Marc LACHAUME
3 // Copyright (c) 1994-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
6 // This file is part of Open CASCADE Technology software library.
8 // This library is free software; you can redistribute it and/or modify it under
9 // the terms of the GNU Lesser General Public License version 2.1 as published
10 // by the Free Software Foundation, with special exception defined in the file
11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 // distribution for complete text of the license and disclaimer of any warranty.
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
17 #ifndef _Geom2dHatch_Intersector_HeaderFile
18 #define _Geom2dHatch_Intersector_HeaderFile
20 #include <Standard.hxx>
21 #include <Standard_DefineAlloc.hxx>
22 #include <Standard_Handle.hxx>
24 #include <Standard_Real.hxx>
25 #include <Geom2dInt_GInter.hxx>
26 class Geom2dAdaptor_Curve;
32 class Geom2dHatch_Intersector : public Geom2dInt_GInter
39 //! Creates an intersector.
40 Geom2dHatch_Intersector(const Standard_Real Confusion, const Standard_Real Tangency);
42 //! Returns the confusion tolerance of the
44 Standard_Real ConfusionTolerance() const;
46 //! Sets the confusion tolerance of the intersector.
47 void SetConfusionTolerance (const Standard_Real Confusion);
49 //! Returns the tangency tolerance of the
51 Standard_Real TangencyTolerance() const;
53 //! Sets the tangency tolerance of the intersector.
54 void SetTangencyTolerance (const Standard_Real Tangency);
56 //! Intersects the curves C1 and C2.
57 //! The results are retreived by the usual methods
58 //! described in IntRes2d_Intersection.
59 //! Creates an intersector.
60 void Intersect (const Geom2dAdaptor_Curve& C1, const Geom2dAdaptor_Curve& C2);
62 Standard_EXPORT Geom2dHatch_Intersector();
64 //! Performs the intersection between the 2d line
65 //! segment (<L>, <P>) and the Curve <E>. The line
66 //! segment is the part of the 2d line <L> of
67 //! parameter range [0, <P>] (P is positive and can be
68 //! RealLast()). Tol is the Tolerance on the segment.
69 //! The order is relevant, the first argument is the
70 //! segment, the second the Edge.
71 Standard_EXPORT void Perform (const gp_Lin2d& L, const Standard_Real P, const Standard_Real Tol, const Geom2dAdaptor_Curve& E);
73 //! Returns in <T>, <N> and <C> the tangent, normal
74 //! and curvature of the edge <E> at parameter value
76 Standard_EXPORT void LocalGeometry (const Geom2dAdaptor_Curve& E, const Standard_Real U, gp_Dir2d& T, gp_Dir2d& N, Standard_Real& C) const;
91 Standard_Real myConfusionTolerance;
92 Standard_Real myTangencyTolerance;
98 #include <Geom2dHatch_Intersector.lxx>
104 #endif // _Geom2dHatch_Intersector_HeaderFile