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 | |
7 | package 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 | |
15 | uses |
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 | |
31 | is |
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 | |
374 | end BOPTools; |