0024002: Overall code and build procedure refactoring -- automatic
[occt.git] / src / BOPAlgo / BOPAlgo_WireSplitter.hxx
1 // Created by: Peter KURNEV
2 // Copyright (c) 1999-2012 OPEN CASCADE SAS
3 //
4 // The content of this file is subject to the Open CASCADE Technology Public
5 // License Version 6.5 (the "License"). You may not use the content of this file
6 // except in compliance with the License. Please obtain a copy of the License
7 // at http://www.opencascade.org and read it completely before using this file.
8 //
9 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
10 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
11 //
12 // The Original Code and all software distributed under the License is
13 // distributed on an "AS IS" basis, without warranty of any kind, and the
14 // Initial Developer hereby disclaims all such warranties, including without
15 // limitation, any warranties of merchantability, fitness for a particular
16 // purpose or non-infringement. Please see the License for the specific terms
17 // and conditions governing the rights and limitations under the License.
18
19 #ifndef _BOPAlgo_WireSplitter_HeaderFile
20 #define _BOPAlgo_WireSplitter_HeaderFile
21
22 #include <Standard.hxx>
23 #include <Standard_DefineAlloc.hxx>
24 #include <Standard_Handle.hxx>
25
26 #include <BOPAlgo_PWireEdgeSet.hxx>
27 #include <BOPTools_ListOfConnexityBlock.hxx>
28 #include <BOPAlgo_Algo.hxx>
29 #include <BOPCol_BaseAllocator.hxx>
30 #include <BOPCol_ListOfShape.hxx>
31 #include <BOPTools_ConnexityBlock.hxx>
32 class BOPAlgo_WireEdgeSet;
33 class TopoDS_Wire;
34 class TopoDS_Face;
35
36
37
38 class BOPAlgo_WireSplitter  : public BOPAlgo_Algo
39 {
40 public:
41
42   DEFINE_STANDARD_ALLOC
43
44   
45   Standard_EXPORT BOPAlgo_WireSplitter();
46 Standard_EXPORT virtual ~BOPAlgo_WireSplitter();
47   
48   Standard_EXPORT BOPAlgo_WireSplitter(const BOPCol_BaseAllocator& theAllocator);
49   
50   Standard_EXPORT void SetWES (const BOPAlgo_WireEdgeSet& theWES);
51   
52   Standard_EXPORT BOPAlgo_WireEdgeSet& WES();
53   
54   Standard_EXPORT virtual void Perform() Standard_OVERRIDE;
55   
56     static void MakeWire (BOPCol_ListOfShape& theLE, TopoDS_Wire& theW);
57   
58   Standard_EXPORT static void SplitBlock (const TopoDS_Face& theF, BOPTools_ConnexityBlock& theCB);
59
60
61
62
63 protected:
64
65   
66   Standard_EXPORT virtual void CheckData() Standard_OVERRIDE;
67   
68   Standard_EXPORT void MakeConnexityBlocks();
69   
70   Standard_EXPORT void MakeWires();
71
72
73   BOPAlgo_PWireEdgeSet myWES;
74   BOPTools_ListOfConnexityBlock myLCB;
75
76
77 private:
78
79
80
81
82
83 };
84
85
86 #include <BOPAlgo_WireSplitter.lxx>
87
88
89
90
91
92 #endif // _BOPAlgo_WireSplitter_HeaderFile