Integration of OCCT 6.5.0 from SVN
[occt.git] / src / BOP / BOP.cdl
CommitLineData
7fd59977 1-- File: BOP.cdl
2-- Created: Thu Mar 29 10:55:43 2001
3-- Author: Peter KURNEV
4-- <pkv@irinox>
5---Copyright: Matra Datavision 2001
6
7package BOP
8
9 ---Purpose: Contains main and auxiliary classes to provide boolean operations
10 -- (BO) Common, Cut, Fuse, Section between a couple BRep shapes.
11
12uses
13 Geom2dInt,
14 TopoDS,
15 TopAbs,
16 TopTools,
17 TopExp,
18 gp,
19 TColgp,
20 ProjLib,
21 Geom2d,
22 Geom,
23 TColStd,
24 TopTools,
25 TCollection,
26 BRepClass,
27 BRep,
28 BRepClass3d,
29 BooleanOperations,
30 IntTools,
31 BOPTools,
32 BOPTColStd
33
34is
35 ---
36 --- E n u m e r a t i o n s
37 ---
38 enumeration Operation is
39 COMMON,
40 FUSE,
41 CUT,
42 CUT21,
43 SECTION,
44 UNKNOWN
45 end Operation;
46
47 enumeration LoopEnum is
48 ANYLOOP,
49 BOUNDARY,
50 BLOCK
51 end LoopEnum;
52
53 enumeration CheckStatus is
54 CheckUnknown,
55 BadType,
56 SelfIntersect,
57 TooSmallEdge,
58 NonRecoverableFace,
59 IncompatibilityOfVertex,
60 IncompatibilityOfEdge,
61 IncompatibilityOfFace
62 end CheckStatus;
63 ---
64 --- T h e C l a s s e s
65 ---
66
67 deferred class Builder;
68 ---Purpose:
69 --- Root class for performing a BO
70 ---
71 class WireWire;
72 ---Purpose:
73 --- Performs BO (Common,Cut,Fuse) for wires(edges)
74 ---
75 class WireShell;
76 ---Purpose:
77 --- Performs BO (Common,Cut,Fuse) for wire(edge)/shell(face)
78 ---
79 class WireSolid;
80 ---Purpose:
81 --- Performs BO (Common,Cut,Fuse) for wire(edge)/solid
82 ---
83 class WireShape;
84 ---Purpose:
85 --- Root class for Wire/... Biulders
86 ---
87
88 class SolidSolid;
89 ---Purpose:
90 --- Performs BO (Common,Cut,Fuse) for solids
91 ---
92 class ShellShell;
93 ---Purpose:
94 --- Performs BO (Common,Cut,Fuse) for shell/shell arguments
95 ---
96 class ShellSolid;
97 ---Purpose:
98 --- Performs BO (Common,Cut,Fuse) for shell/solid arguments
99 ---
100
101 class EmptyBuilder;
102 ---Purpose:
103 --- Performs BO (Common,Cut,Fuse) for shapes
104 --- in cases when one of arguments(or both) is(are) empty
105 ---
106 deferred class HistoryCollector;
107
108 class SolidSolidHistoryCollector;
109
110 class ShellSolidHistoryCollector;
111
112 class WireSolidHistoryCollector;
113
114 class SectionHistoryCollector;
115
116 class BuilderTools;
117 ---Purpose:
118 --- Handy tools to help building a result
119 ---
120 class Section;
121 ---Purpose:
122 --- Performs the BO (Section)
123 --- for the shapes where it is valid one
124 ---
125 class Refiner;
126 ---Purpose:
127 --- Refines the result of the BO if necessary
128 ---
129 class ShapeSet;
130 ---Purpose:
131 --- Root auxiliary class for set of shapes
132 --- to build new faces from wires,new solids from shells
133 ---
134 class WireEdgeSet;
135 ---Purpose:
136 --- Class for set of edges and wires to build new faces
137 ---
138 class ShellFaceSet;
139 ---Purpose:
140 --- Class for set of faces and shells to build new solids
141 ---
142 class BlockBuilder;
143 ---Purpose:
144 --- Auxiliary class to storage and operate with data of
145 --- connexity blocks inside
146 ---
147 class BlockIterator;
148 ---Purpose:
149 --- Auxiliary class to iterate data inside the given
150 --- connexity block
151 ---
152 class Loop;
153 ---Purpose:
154 --- Auxiliary class containing data about an existing shape
155 --- (Shell,Wire)or a set of shapes (Faces,Edges) which are connex.
156 ---
157 class LoopSet;
158 ---Purpose:
159 --- Auxiliary class to storage and iterate on Loop(s)
160 ---
161
162 deferred class LoopClassifier;
163 ---Purpose:
164 --- Root class to classify loops in order to build Areas
165 ---
166 deferred class CompositeClassifier;
167 ---Purpose:
168 --- Cclassify composite Loops, i.e, loops that can be
169 --- either a Shape, or a block of Elements
170 ---
171 class WireEdgeClassifier;
172 ---Purpose:
173 --- Classify loops that consist of edges and wires
174 ---
175 class ShellFaceClassifier;
176 ---Purpose:
177 --- Classify loops that consist of faces and shells
178 ---
179 class AreaBuilder;
180 ---Purpose:
181 --- Root class to provide building valid areas from
182 --- corresponding shape sets
183 ---
184 class Area2dBuilder;
185 ---Purpose:
186 --- Constructs areas for Faces from a WireEdgeSet
187 ---
188 class FaceAreaBuilder;
189 ---Purpose:
190 --- constructs Loops for Faces from a WireEdgeSet
191 ---
192 class FaceBuilder;
193 ---Purpose:
194 --- construct Faces from a WireEdgeSet
195 ---
196 class Area3dBuilder;
197 ---Purpose:
198 --- Constructs areas for Faces from a WireEdgeSet
199 ---
200 class SolidAreaBuilder;
201 ---Purpose:
202 --- Constructs areas for Solids from a ShellFaceSet
203 ---
204 class SolidBuilder;
205 ---Purpose:
206 --- Constructs Solids from a ShellFaceSet
207 ---
208 class EdgeInfo;
209 ---Purpose:
210 --- Auxiliary class to store data about edges on a face
211 --- that have common vertex
212 ---
213 class FaceInfo;
214 ---Purpose:
215 --- Auxiliary class to store data about faces on a shell
216 --- that have common edge
217 ---
218 class WireSplitter;
219 ---Purpose:
220 --- The algorithm to split invalid (multiconnexed)
221 --- wires on a face onto valid ones
222 ---
223 class ShellSplitter;
224 ---Purpose:
225 --- The algorithm to split invalid (multiconnexed)
226 --- shells on a solid onto valid ones
227 ---
228 class ConnexityBlock;
229 ---Purpose:
230 --- Auxiliary class to create and store data about a set
231 --- of connex shapes
232 ---
233 class WESCorrector;
234 ---Purpose:
235 --- The algorithm to change the WES contents
236 --- The NewWES will contain only wires instead of
237 --- wires and edges.
238 ---
239 class SFSCorrector;
240 ---Purpose:
241 --- The algorithm to change the SFS contents.
242 --- The NewSFS will contain only shells instead of
243 --- shells and faces.
244 ---
245
246 class CorrectTolerances;
247 ---Purpose:
248 --- Auxiliary class to provide valid values for result's tolerances'
249 ---
250 class Draw;
251 ---Purpose:
252 --- Auxiliary class to display intermediate results in Draw's windows
253 --- for the debugging purposes
254 ---
255 class SDFWESFiller;
256 ---Purpose:
257 --- Fills a wire edges set for a couple of faces that are same domain
258 ---
259
260 class CheckResult;
261 class ArgumentAnalyzer;
262 ---
263 --- P o i n t e r s
264 ---
265 pointer PWireEdgeSet to WireEdgeSet from BOP;
266 pointer PShellFaceSet to ShellFaceSet from BOP;
267 pointer PBuilder to Builder from BOP;
268
269 ---
270 --- I n s t a n t i a t i o n s
271 ---
272 class ListOfConnexityBlock instantiates
273 List from TCollection(ConnexityBlock from BOP);
274
275 class ListOfLoop instantiates
276 List from TCollection(Loop from BOP);
277
278 class ListOfListOfLoop instantiates
279 List from TCollection(ListOfLoop from BOP);
280
281 class ListOfEdgeInfo instantiates
282 List from TCollection(EdgeInfo from BOP);
283
284 class IndexedDataMapOfVertexListEdgeInfo instantiates
285 IndexedDataMap from TCollection(Shape from TopoDS,
286 ListOfEdgeInfo from BOP,
287 ShapeMapHasher from TopTools);
288 class ListOfFaceInfo instantiates
289 List from TCollection(FaceInfo from BOP);
290
291 class IndexedDataMapOfEdgeListFaceInfo instantiates
292 IndexedDataMap from TCollection(Shape from TopoDS,
293 ListOfFaceInfo from BOP,
294 ShapeMapHasher from TopTools);
295 class SeqOfSeqOfShape instantiates
296 Sequence from TCollection(SequenceOfShape from TopTools);
297
298
299--
300 class SolidClassifier;
301
302 pointer PSoClassif to SolidClassifier from BRepClass3d;
303
304 class IndexedDataMapOfSolidClassifier instantiates
305 IndexedDataMap from TCollection (Shape from TopoDS,
306 PSoClassif from BOP,
307 ShapeMapHasher from TopTools);
308
309 class ListOfCheckResult instantiates
310 List from TCollection(CheckResult from BOP);
311--
312
313
314end BOP;
315