0028187: Add possibility to avoid creation of Internal parts in the result of Volume...
[occt.git] / src / BOPAlgo / BOPAlgo_MakerVolume.lxx
1 // Created by: Eugeny MALTCHIKOV
2 // Copyright (c) 2014 OPEN CASCADE SAS
3 //
4 // This file is part of Open CASCADE Technology software library.
5 //
6 // This library is free software; you can redistribute it and/or modify it under
7 // the terms of the GNU Lesser General Public License version 2.1 as published
8 // by the Free Software Foundation, with special exception defined in the file
9 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
10 // distribution for complete text of the license and disclaimer of any warranty.
11 //
12 // Alternatively, this file may be used under the terms of Open CASCADE
13 // commercial license or contractual agreement.
14
15 //=======================================================================
16 //function : BOPAlgo_MakerVolume
17 //purpose  : 
18 //=======================================================================
19 inline BOPAlgo_MakerVolume::BOPAlgo_MakerVolume()
20 :
21   BOPAlgo_Builder(),
22   myIntersect(Standard_True),
23   myAvoidInternalShapes(Standard_False)
24 {
25 }
26
27 //=======================================================================
28 //function : BOPAlgo_MakerVolume
29 //purpose  : 
30 //=======================================================================
31 inline BOPAlgo_MakerVolume::BOPAlgo_MakerVolume
32   (const Handle(NCollection_BaseAllocator)& theAllocator)
33 :
34   BOPAlgo_Builder(theAllocator),
35   myIntersect(Standard_True),
36   myAvoidInternalShapes(Standard_False)
37 {
38 }
39
40 //=======================================================================
41 //function : ~BOPAlgo_MakerVolume
42 //purpose  : 
43 //=======================================================================
44 inline BOPAlgo_MakerVolume::~BOPAlgo_MakerVolume()
45 {
46   Clear();
47 }
48
49 //=======================================================================
50 //function : Clear
51 //purpose  : 
52 //=======================================================================
53 inline void BOPAlgo_MakerVolume::Clear()
54 {
55   BOPAlgo_Builder::Clear();
56   myIntersect = Standard_True;
57   myBBox = Bnd_Box();
58   mySBox.Nullify();
59   myFaces.Clear();
60   myAvoidInternalShapes = Standard_False;
61 }
62
63 //=======================================================================
64 //function : SetIntersect
65 //purpose  : 
66 //=======================================================================
67 inline void BOPAlgo_MakerVolume::SetIntersect(const Standard_Boolean bIntersect)
68 {
69   myIntersect = bIntersect;
70 }
71
72 //=======================================================================
73 //function : IsIntersect
74 //purpose  : 
75 //=======================================================================
76 inline Standard_Boolean BOPAlgo_MakerVolume::IsIntersect()const
77 {
78   return myIntersect;
79 }
80
81 //=======================================================================
82 //function : Box
83 //purpose  : 
84 //=======================================================================
85 inline const TopoDS_Solid& BOPAlgo_MakerVolume::Box()const
86 {
87   return mySBox;
88 }
89
90 //=======================================================================
91 //function : Faces
92 //purpose  : 
93 //=======================================================================
94 inline const BOPCol_ListOfShape& BOPAlgo_MakerVolume::Faces()const
95 {
96   return myFaces;
97 }