b311480e |
1 | -- Created on: 1993-10-14 |
2 | -- Created by: Remi LEQUETTE |
3 | -- Copyright (c) 1993-1999 Matra Datavision |
973c2be1 |
4 | -- Copyright (c) 1999-2014 OPEN CASCADE SAS |
b311480e |
5 | -- |
973c2be1 |
6 | -- This file is part of Open CASCADE Technology software library. |
b311480e |
7 | -- |
d5f74e42 |
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 |
973c2be1 |
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. |
b311480e |
13 | -- |
973c2be1 |
14 | -- Alternatively, this file may be used under the terms of Open CASCADE |
15 | -- commercial license or contractual agreement. |
b311480e |
16 | |
7fd59977 |
17 | -- modified by Peter KURNEV Tue Mar 5 14:01:51 2002 |
4e57c75e |
18 | -- modified by Eugeny MALTCHIKOV Wed Jul 04 11:13:01 2012 |
19 | |
7fd59977 |
20 | |
21 | deferred class BooleanOperation from BRepAlgoAPI |
22 | inherits MakeShape from BRepBuilderAPI |
23 | |
24 | ---Purpose: The abstract class BooleanOperation is the root |
25 | -- class of Boolean Operations (see Overview). |
26 | -- Boolean Operations algorithm is divided onto two parts. |
27 | -- - The first one is computing interference between arguments. |
28 | -- - The second one is building the result of operation. |
29 | -- The BooleanOperation class provides execution of both parts |
30 | -- of the Boolean Operations algorithm. The second part |
31 | -- (building the result) depends on given type of the Boolean |
32 | -- Operation (see Constructor). |
33 | |
34 | uses |
35 | |
36 | Shape from TopoDS, |
37 | ListOfShape from TopTools, |
4e57c75e |
38 | Operation from BOPAlgo, |
39 | BOP from BOPAlgo, |
40 | PBOP from BOPAlgo, |
41 | PaveFiller from BOPAlgo, |
42 | PPaveFiller from BOPAlgo, |
7fd59977 |
43 | DataMapOfIntegerListOfShape from TopTools, |
44 | DataMapOfIntegerShape from TopTools, |
45 | DataMapOfShapeShape from TopTools |
46 | |
47 | is |
48 | |
49 | Initialize (S1 :Shape from TopoDS; |
50 | S2 :Shape from TopoDS; |
4e57c75e |
51 | anOperation:Operation from BOPAlgo); |
7fd59977 |
52 | ---Purpose: Prepares the operations for S1 and S2. |
53 | |
54 | Initialize (S1 :Shape from TopoDS; |
55 | S2 :Shape from TopoDS; |
4e57c75e |
56 | aDSF :PaveFiller from BOPAlgo; |
57 | anOperation:Operation from BOPAlgo); |
7fd59977 |
58 | ---Purpose: Prepares the operations for S1 and S2. |
59 | |
60 | SetOperation (me:out; |
4e57c75e |
61 | anOp: Operation from BOPAlgo); |
7fd59977 |
62 | ---Purpose: Sets the type of Boolean operation to perform |
4e57c75e |
63 | --- It can be BOPAlgo_SECTION |
64 | --- BOPAlgo_COMMON |
65 | --- BOPAlgo_FUSE |
66 | --- BOPAlgo_CUT |
67 | --- BOPAlgo_CUT21 |
7fd59977 |
68 | --- |
69 | |
70 | |
71 | Build (me:out) |
72 | is redefined virtual; |
73 | ---Purpose: Provides the algorithm of Boolean Operations |
74 | -- - Filling interference Data Structure (if it is necessary) |
75 | -- - Building the result of the operation. |
76 | |
77 | Shape1(me) |
78 | returns Shape from TopoDS |
79 | is static; |
80 | ---Purpose: Returns the first shape involved in this Boolean operation. |
81 | ---C++: return const & |
82 | |
83 | Shape2(me) |
84 | returns Shape from TopoDS |
85 | is static; |
86 | ---Purpose: Returns the second shape involved in this Boolean operation. |
87 | ---C++: return const & |
88 | |
89 | Operation (me) |
4e57c75e |
90 | returns Operation from BOPAlgo; |
7fd59977 |
91 | ---Purpose: Returns the type of Boolean Operation that has been performed. |
92 | |
93 | FuseEdges(me) returns Boolean from Standard; |
94 | ---Purpose: Returns the flag of edge refining |
95 | |
96 | RefineEdges(me:out); |
97 | ---Purpose: Fuse C1 edges |
98 | |
99 | PrepareFiller(me:out) |
100 | returns Boolean from Standard |
101 | is protected; |
102 | |
103 | |
104 | ---Category: Querying |
105 | BuilderCanWork(me) |
106 | returns Boolean from Standard; |
107 | |
108 | ErrorStatus(me) |
109 | returns Integer from Standard; |
110 | ---Purpose: Returns the error status of operation. |
111 | --- 0 - Ok |
112 | --- 1 - The Object is created but Nothing is Done |
113 | --- 2 - Null source shapes is not allowed |
114 | --- 3 - Check types of the arguments |
115 | --- 4 - Can not allocate memory for the DSFiller |
116 | --- 5 - The Builder can not work with such types of arguments |
117 | --- 6 - Unknown operation is not allowed |
118 | --- 7 - Can not allocate memory for the Builder |
119 | -- > 100 - See the Builder's ErrorStatus |
120 | |
121 | Modified (me: in out; |
122 | aS : Shape from TopoDS) |
123 | returns ListOfShape from TopTools |
124 | is redefined virtual; |
125 | ---Purpose: Returns the list of shapes modified from the shape <S>. |
126 | ---C++: return const & |
127 | |
128 | IsDeleted (me: in out; |
129 | aS : Shape from TopoDS) |
130 | returns Boolean |
131 | is redefined virtual; |
132 | ---Purpose: Returns true if the shape S has been deleted. The |
133 | -- result shape of the operation does not contain the shape S. |
134 | |
7fd59977 |
135 | Generated (me: in out; S : Shape from TopoDS) |
136 | returns ListOfShape from TopTools |
137 | is redefined virtual; |
138 | ---Purpose: Returns the list of shapes generated from the shape <S>. |
139 | --- For use in BRepNaming. |
140 | ---C++: return const & |
141 | |
142 | HasModified (me) |
143 | returns Boolean from Standard |
144 | is virtual; |
145 | ---Purpose: Returns true if there is at least one modified shape. |
146 | --- For use in BRepNaming. |
147 | |
148 | HasGenerated (me) |
149 | returns Boolean from Standard |
150 | is virtual; |
151 | ---Purpose: Returns true if there is at least one generated shape. |
152 | --- For use in BRepNaming. |
153 | |
154 | HasDeleted (me) |
155 | returns Boolean from Standard |
156 | is virtual; |
157 | ---Purpose: Returns true if there is at least one deleted shape. |
158 | --- For use in BRepNaming. |
159 | |
160 | Destroy (me: in out); |
161 | ---C++: alias "Standard_EXPORT virtual ~BRepAlgoAPI_BooleanOperation(){Destroy();}" |
162 | |
163 | --modified by NIZNHY-PKV Wed Mar 20 10:29:30 2002 f |
164 | |
165 | SectionEdges (me: in out) |
166 | returns ListOfShape from TopTools; |
167 | --- Purpose: Returns a list of section edges. |
168 | -- The edges represent the result of intersection between arguments of |
169 | -- Boolean Operation. They are computed during operation execution. |
170 | ---C++: return const & |
171 | --modified by NIZNHY-PKV Wed Mar 20 10:29:35 2002 t |
172 | |
173 | RefinedList (me: in out; theL : ListOfShape from TopTools) |
174 | returns ListOfShape from TopTools |
175 | is private; |
176 | ---Purpose: Returns the list of shapes generated from the shape <S>. |
177 | --- For use in BRepNaming. |
178 | ---C++: return const & |
179 | |
180 | fields |
4e57c75e |
181 | myS1 : Shape from TopoDS is protected; |
182 | myS2 : Shape from TopoDS is protected; |
183 | myBuilderCanWork : Boolean from Standard is protected; |
184 | myOperation : Operation from BOPAlgo is protected; |
185 | myErrorStatus : Integer from Standard is protected; |
186 | myDSFiller : PPaveFiller from BOPAlgo is protected; |
187 | myBuilder : PBOP from BOPAlgo is protected; |
7fd59977 |
188 | |
189 | myEntryType : Integer from Standard; |
190 | |
191 | -- for edge refiner |
192 | myFuseEdges : Boolean from Standard ; |
193 | myModifFaces : DataMapOfShapeShape from TopTools; |
194 | myEdgeMap : DataMapOfShapeShape from TopTools; |
195 | |
196 | end BooleanOperation; |
197 | |