0022627: Change OCCT memory management defaults
[occt.git] / src / BOPTools / BOPTools.cdl
CommitLineData
7fd59977 1-- File: BOPTools.cdl
2-- Created: Thu Nov 16 16:42:52 2000
3-- Author: Peter KURNEV
4-- <pkv@irinox>
5---Copyright: Matra Datavision 2000
6
7package BOPTools
8
9 ---Purpose:
10 --- Contains main and auxiliary classes to fill the
11 --- Data Structure (DS) to provide boolean
12 --- operations between a couple BRep shapes.
13 ---
14
15uses
16 gp,
17 Bnd,
18 TopAbs,
19 TopoDS,
20 TopTools,
21 TCollection,
22 TColStd,
23 SortTools,
24 Geom,
25 Geom2d,
26 ProjLib,
27 BooleanOperations,
28 BOPTColStd,
29 IntTools
30
31is
32 ---
33 --- E n u m e r a t i o n s
34 ---
35 enumeration IntersectionStatus is
36 INTERSECTED,
37 BOUNDINGBOXINTERSECTED,
38 BOUNDINGBOXOFSUBSHAPESINTERSECTED,
39 NONINTERSECTED,
40 UNKNOWN
41 end IntersectionStatus;
42
43 enumeration CheckStatus is
44 CHKUNKNOWN,
45 VERTEXVERTEX,
46 VERTEXEDGE,
47 VERTEXFACE,
48 EDGEEDGE,
49 EDGEEDGECOMBLK,
50 EDGEFACE,
51 EDGEFACECOMBLK,
52 FACEFACE,
53 BADSHRANKRANGE,
54 NULLSRANKRANGE
55 end CheckStatus;
56 ---
57 --- T h e C l a s s e s
58 ---
59
60 --- +==========================+
61 --- ! Fillers and friends !
62 --- +==========================+
63 class PaveFiller;
64 ---Purpose:
65 --- Class that provides
66 --- 1. computation of interferences of all types
67 --- 2. storing the interferences in interferences' pool
68 --- 3. building new vertices, edges and storing them in the DS
69 --- 4. preparing the information about PaveBlocks, CommonBlocks
70 ---
71 class DSFiller;
72 ---Purpose:
73 --- Class that provides
74 --- 1. creation of the data structure (DS)
75 --- 2. creation of the interferences' pool
76 --- 3. invokation of PaveFiller->Perform() to fill the DS
77 ---
78 ---
79 class DEProcessor;
80 ---Purpose:
81 --- Class to compute and store in interferences' pool
82 --- and DS the following values
83 --- for degenerated edges
84 --- 1. Paves/Pave set(s)
85 --- 2. Split parts
86 --- 3. States (3D) for split parts
87 ---
88 class PCurveMaker;
89 ---Purpose:
90 --- Class to compute p-curves for the edges and theirs
91 --- split parts
92 ---
93
94 class SolidStateFiller;
95 ---Purpose:
96 --- Class to compute states (3D) for the edges (and theirs
97 --- split parts), vertices, wires, faces, shells
98 ---
99 class StateFiller;
100 ---Purpose:
101 --- Root class for state fillers
102 ---
103 class WireStateFiller;
104 ---Purpose:
105 --- Class to compute states (3D) for the edges (and theirs
106 --- split parts), vertices, wires
107 ---
108 --- +================================+
109 --- ! Paves and Blocks of Paves !
110 --- +================================+
111 class Pave;
112 ---Purpose:
113 --- Class for storing info about a vertex on an edge
114 ---
115 class PaveBlock;
116 ---Purpose:
117 --- Class for storing info about a couple
118 --- of neighbouring paves on an edge
119 ---
120 class PaveSet;
121 ---Purpose:
122 --- Class for storing/sorting paves that belong to an edge
123 ---
124
125 class PaveBlockIterator;
126 ---Purpose:
127 --- Class providing iterations for PaveSet to
128 --- have the right order of paves along the edge
129 ---
130 class ComparePave;
131 ---Purpose:
132 --- Class providing interface necessary for sorting
133 --- paves along the edge
134 ---
135 class CommonBlock;
136 ---Purpose:
137 --- Class for storing info about a couple
138 --- of pave blocks that are considered as common
139 ---
140 class CommonBlockAPI;
141 ---Purpose:
142 --- Class that provide useful tools to manage with
143 --- List Of Common Block-s
144 ---
145
146
147
148 --- +==============+
149 --- ! Intrferences !
150 --- +==============+
151 class ShapeShapeInterference;
152 ---Purpose:
153 --- Root class for storing an Interference
154 --- between a couple BRep shapes
155 ---
156 class VVInterference;
157 ---Purpose:
158 --- Class for storing an Verex/Vertex
159 --- interference
160 ---
161 class VSInterference;
162 ---Purpose:
163 --- Class for storing an Verex/Face
164 --- interference
165 ---
166 class VEInterference;
167 ---Purpose:
168 --- Class for storing an Verex/Edge
169 --- interference
170 ---
171 class EEInterference;
172 ---Purpose:
173 --- Class for storing an Edge/Edge
174 --- interference
175 ---
176 class ESInterference;
177 ---Purpose:
178 --- Class for storing an Edge/Face
179 --- interference
180 ---
181 class SSInterference;
182 ---Purpose:
183 --- Class for storing an Face/Face
184 --- interference
185 ---
186 class Interference;
187 ---Purpose:
188 --- Class for storing information about an
189 --- interference
190 ---
191 class InterferenceLine;
192 ---Purpose:
193 --- Class for storing information about all
194 --- interferences for given shape
195 ---
196 class InterferencePool;
197 ---Purpose:
198 --- Class for storing information about
199 --- results of all interferences for all shapes
200 ---
201
202 --- +=======+
203 --- ! Tools !
204 --- +=======+
205 class Tools;
206 class Tools2D;
207 class Tools3D;
208 --- +=============+
209 --- ! Miscellanea !
210 --- +=============+
211
212
213 class DEInfo;
214 ---Purpose:
215 --- Class for storing information about
216 --- a degenerated edge
217 ---
218 class PointBetween;
219 ---Purpose:
220 --- Class for storing geometry information about
221 --- a point between neighbouring paves along
222 --- an edge
223 ---
224 class Curve;
225 ---Purpose:
226 --- Class for storing information about
227 --- intersection curve and set of paves on it
228 ---
229 class CoupleOfInteger;
230
231
232 class Checker;
233 ---Purpose:
234 --- Class that provides the algorithm
235 --- to check a shape on self-interference.
236 ---
237
238 class CheckResult;
239 ---Purpose: provides a container to store faulty
240 --- sub - shapes in tested shape with type of
241 --- detected faulty
242
243 ---
244 --- P o i n t e r s
245 ---
246 pointer PInterferencePool to InterferencePool from BOPTools;
247 pointer PPaveFiller to PaveFiller from BOPTools;
248 pointer PDSFiller to DSFiller from BOPTools;
249 pointer PShapeShapeInterference to ShapeShapeInterference from BOPTools;
250 ---
251 --- I n s t a n t i a t i o n s
252 ---
253 class ListOfCoupleOfInteger instantiates
254 List from TCollection (CoupleOfInteger from BOPTools);
255
256 class ListOfInterference instantiates
257 List from TCollection (Interference from BOPTools);
258
259 class CArray1OfInterferenceLine instantiates
260 CArray1 from BOPTColStd(InterferenceLine from BOPTools);
261
262 class CArray1OfSSInterference instantiates
263 CArray1 from BOPTColStd(SSInterference from BOPTools);
264
265 class CArray1OfESInterference instantiates
266 CArray1 from BOPTColStd(ESInterference from BOPTools);
267
268 class CArray1OfVSInterference instantiates
269 CArray1 from BOPTColStd(VSInterference from BOPTools);
270
271 class CArray1OfEEInterference instantiates
272 CArray1 from BOPTColStd(EEInterference from BOPTools);
273
274 class CArray1OfVEInterference instantiates
275 CArray1 from BOPTColStd(VEInterference from BOPTools);
276
277 class CArray1OfVVInterference instantiates
278 CArray1 from BOPTColStd(VVInterference from BOPTools);
279
280 class PavePool instantiates
281 CArray1 from BOPTColStd(PaveSet from BOPTools);
282
283 class ListOfPave instantiates
284 List from TCollection(Pave);
285
286 class ListOfCommonBlock instantiates
287 List from TCollection(CommonBlock from BOPTools);
288
289 class ListOfPaveBlock instantiates
290 List from TCollection(PaveBlock from BOPTools);
291
292 class CommonBlockPool instantiates
293 CArray1 from BOPTColStd (ListOfCommonBlock from BOPTools);
294
295 class SplitShapesPool instantiates
296 CArray1 from BOPTColStd (ListOfPaveBlock from BOPTools);
297
298 class Array1OfPave instantiates
299 Array1 from TCollection (Pave from BOPTools);
300
301 class CArray1OfPave instantiates
302 CArray1 from BOPTColStd (Pave from BOPTools);
303
304 class QuickSortPave instantiates
305 QuickSort from SortTools (Pave from BOPTools,
306 Array1OfPave from BOPTools,
307 ComparePave from BOPTools);
308
309 class IndexedDataMapOfIntegerState instantiates
310 IndexedDataMap from TCollection (Integer from Standard,
311 StateOfShape from BooleanOperations,
312 MapIntegerHasher from TColStd);
313
314 class SequenceOfCurves instantiates
315 Sequence from TCollection(Curve from BOPTools);
316
317 class IndexedDataMapOfShapeWithState instantiates
318 IndexedDataMap from TCollection (Shape from TopoDS,
319 StateOfShape from BooleanOperations,
320 ShapeMapHasher from TopTools);
321 class ListOfShapeEnum instantiates
322 List from TCollection(ShapeEnum from TopAbs);
323
324 class IndexedDataMapOfIntegerDEInfo instantiates
325 IndexedDataMap from TCollection (Integer from Standard,
326 DEInfo from BOPTools,
327 MapIntegerHasher from TColStd);
328
329 class Array2OfIntersectionStatus instantiates
330 Array2 from TCollection (IntersectionStatus from BOPTools);
331
332 class HArray2OfIntersectionStatus instantiates
333 HArray2 from TCollection (IntersectionStatus from BOPTools,
334 Array2OfIntersectionStatus from BOPTools);
335
336 class ListOfCheckResults instantiates
337 List from TCollection (CheckResult from BOPTools);
338
339 class RoughShapeIntersector;
340 class IteratorOfCoupleOfShape;
341 class SSIntersectionAttribute;
342
343--
344-- additions
345--
346 class CoupleOfIntegerMapHasher;
347 class PaveBlockMapHasher;
348
349 class IndexedMapOfCoupleOfInteger instantiates
350 IndexedMap from TCollection(CoupleOfInteger from BOPTools,
351 CoupleOfIntegerMapHasher from BOPTools);
352
353 class IndexedDataMapOfIntegerPaveSet instantiates
354 IndexedDataMap from TCollection (Integer from Standard,
355 PaveSet from BOPTools,
356 MapIntegerHasher from TColStd);
357 class IMapOfPaveBlock instantiates
358 IndexedMap from TCollection(PaveBlock from BOPTools,
359 PaveBlockMapHasher from BOPTools);
360
361 class IDMapOfPaveBlockIMapOfPaveBlock instantiates
362 IndexedDataMap from TCollection (PaveBlock from BOPTools ,
363 IMapOfPaveBlock from BOPTools,
364 PaveBlockMapHasher from BOPTools);
365
366 class IDMapOfPaveBlockIMapOfInteger instantiates
367 IndexedDataMap from TCollection (PaveBlock from BOPTools ,
368 IndexedMapOfInteger from TColStd,
369 PaveBlockMapHasher from BOPTools);
370
371 class SequenceOfPaveBlock instantiates
372 Sequence from TCollection(PaveBlock from BOPTools);
373
374end BOPTools;