0026738: Make Boolean operations safely treating arguments when running with fuzzy...
[occt.git] / src / IntTools / IntTools_WLineTool.hxx
1 // Copyright (c) 1999-2014 OPEN CASCADE SAS
2 //
3 // This file is part of Open CASCADE Technology software library.
4 //
5 // This library is free software; you can redistribute it and/or modify it under
6 // the terms of the GNU Lesser General Public License version 2.1 as published
7 // by the Free Software Foundation, with special exception defined in the file
8 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
9 // distribution for complete text of the license and disclaimer of any warranty.
10 //
11 // Alternatively, this file may be used under the terms of Open CASCADE
12 // commercial license or contractual agreement.
13
14 #ifndef _IntTools_WLineTool_HeaderFile
15 #define _IntTools_WLineTool_HeaderFile
16
17 #include <Standard_Boolean.hxx>
18 #include <Standard_Macro.hxx>
19 #include <IntPatch_WLine.hxx>
20 #include <IntPatch_SequenceOfLine.hxx>
21 class TopoDS_Face;
22 class GeomAdaptor_HSurface;
23 class GeomInt_LineConstructor;
24 class IntTools_Context;
25 class Adaptor3d_TopolTool;
26
27 //! IntTools_WLineTool provides set of static methods related to walking lines.
28 class IntTools_WLineTool
29 {
30 public:
31
32   DEFINE_STANDARD_ALLOC
33
34   Standard_EXPORT static
35     Standard_Boolean NotUseSurfacesForApprox(const TopoDS_Face& aF1,
36                                              const TopoDS_Face& aF2,
37                                              const Handle(IntPatch_WLine)& WL,
38                                              const Standard_Integer ifprm,
39                                              const Standard_Integer ilprm);
40
41   Standard_EXPORT static
42   Standard_Boolean DecompositionOfWLine(const Handle(IntPatch_WLine)& theWLine,
43                                         const Handle(GeomAdaptor_HSurface)&            theSurface1, 
44                                         const Handle(GeomAdaptor_HSurface)&            theSurface2,
45                                         const TopoDS_Face&                             theFace1,
46                                         const TopoDS_Face&                             theFace2,
47                                         const GeomInt_LineConstructor&                 theLConstructor,
48                                         const Standard_Boolean                         theAvoidLConstructor,
49                                         const Standard_Real                            theTol,
50                                         IntPatch_SequenceOfLine&                       theNewLines,
51                                         Standard_Real&                                 theReachedTol3d,
52                                         const Handle(IntTools_Context)& );
53 };
54
55 #endif