7fd59977 |
1 | -- File: HatchGen_Hatcher.cdl |
2 | -- Created: Mon Oct 25 17:01:45 1993 |
3 | -- Author: Jean Marc LACHAUME |
4 | -- <jml@phobox> |
5 | -- Copyright: Matra Datavision 1993 |
6 | |
7 | generic class Hatcher from HatchGen |
8 | (TheCurveE as any ; -- as Curve from Geom2dAdaptor |
9 | TheCurveH as any ; -- as Curve from Geom2dAdaptor |
10 | TheIntersector as any ) -- as Intersector from HatchGen |
11 | |
12 | uses |
13 | MapIntegerHasher from TColStd , |
14 | PointOnHatching from HatchGen , |
15 | Orientation from TopAbs , |
16 | State from TopAbs , |
17 | Domain from HatchGen , |
18 | ErrorStatus from HatchGen |
19 | |
20 | raises |
21 | NoSuchObject from Standard , |
22 | OutOfRange from Standard , |
23 | NotDone from StdFail |
24 | |
25 | ---------------------------------------------------------------------- |
26 | -- Nested classes descriptions. |
27 | ---------------------------------------------------------------------- |
28 | |
29 | class Element from HatchGen instantiates ElementGen from HatchGen |
30 | (TheCurveE) ; |
31 | |
32 | class Elements from HatchGen instantiates ElementsGen from HatchGen |
33 | (Integer from Standard, |
34 | Element from HatchGen, |
35 | MapIntegerHasher from TColStd , |
36 | TheCurveE ) ; |
37 | |
38 | class Hatching from HatchGen instantiates HatchingGen from HatchGen |
39 | (TheCurveH) ; |
40 | |
41 | class Hatchings from HatchGen instantiates DataMap from TCollection |
42 | (Integer from Standard, |
43 | Hatching from HatchGen, |
44 | MapIntegerHasher from TColStd) ; |
45 | |
46 | class Classifier from HatchGen instantiates FaceClassifier from TopClass |
47 | (Elements, |
48 | TheCurveE, |
49 | TheIntersector); |
50 | |
51 | ---------------------------------------------------------------------- |
52 | -- class Hatcher description. |
53 | ---------------------------------------------------------------------- |
54 | |
55 | is |
56 | |
57 | ---Category: General use |
58 | |
59 | |
60 | Create (Intersector : TheIntersector ; |
61 | Confusion2d : Real from Standard ; |
62 | Confusion3d : Real from Standard ; |
63 | KeepPnt : Boolean from Standard = Standard_False ; |
64 | KeepSeg : Boolean from Standard = Standard_False) |
65 | |
66 | ---Purpose: Returns an empty hatcher. |
67 | |
68 | returns Hatcher from HatchGen ; |
69 | |
70 | |
71 | Intersector (me : in out ; Intersector : TheIntersector) |
72 | |
73 | ---Purpose: Sets the associated intersector. |
74 | is static ; |
75 | |
76 | |
77 | Intersector (me : in out) |
78 | |
79 | ---Purpose: Returns the associated intersector. |
80 | |
81 | ---C++: inline |
82 | ---C++: return const & |
83 | |
84 | returns TheIntersector |
85 | is static ; |
86 | |
87 | |
88 | ChangeIntersector (me : in out) |
89 | |
90 | ---Purpose: Returns the associated intersector. |
91 | |
92 | ---C++: inline |
93 | ---C++: return & |
94 | |
95 | returns TheIntersector |
96 | is static ; |
97 | |
98 | |
99 | Confusion2d (me : in out ; Confusion : Real from Standard) |
100 | |
101 | ---Purpose: Sets the confusion tolerance. |
102 | |
103 | is static ; |
104 | |
105 | |
106 | Confusion2d (me) |
107 | |
108 | ---Purpose: Returns the 2d confusion tolerance, i.e. the value under |
109 | -- which two points are considered identical in the |
110 | -- parametric space of the hatching. |
111 | |
112 | ---C++: inline |
113 | returns Real from Standard |
114 | is static ; |
115 | |
116 | |
117 | Confusion3d (me : in out ; Confusion : Real from Standard) |
118 | |
119 | ---Purpose: Sets the confusion tolerance. |
120 | |
121 | is static ; |
122 | |
123 | |
124 | Confusion3d (me) |
125 | |
126 | ---Purpose: Returns the 3d confusion tolerance, i.e. the value under |
127 | -- which two points are considered identical in the |
128 | -- 3d space of the hatching. |
129 | |
130 | ---C++: inline |
131 | returns Real from Standard |
132 | is static ; |
133 | |
134 | |
135 | KeepPoints (me : in out; Keep : Boolean from Standard) |
136 | |
137 | ---Purpose: Sets the above flag. |
138 | |
139 | is static ; |
140 | |
141 | |
142 | KeepPoints (me) |
143 | |
144 | ---Purpose: Returns the flag about the points consideration. |
145 | |
146 | ---C++: inline |
147 | returns Boolean from Standard |
148 | is static ; |
149 | |
150 | |
151 | KeepSegments (me : in out; Keep : Boolean from Standard) |
152 | |
153 | ---Purpose: Sets the above flag. |
154 | |
155 | is static ; |
156 | |
157 | |
158 | KeepSegments (me) |
159 | |
160 | ---Purpose: Returns the flag about the segments consideration. |
161 | |
162 | ---C++: inline |
163 | returns Boolean from Standard |
164 | is static ; |
165 | |
166 | |
167 | Clear (me : in out) |
168 | |
169 | ---Purpose: Removes all the hatchings and all the elements. |
170 | |
171 | ---C++: inline |
172 | is static ; |
173 | |
174 | |
175 | ---Category: Element |
176 | |
177 | |
178 | Element (me : in out ; IndE : Integer from Standard) |
179 | |
180 | ---Purpose: Returns the IndE-th element. |
181 | |
182 | ---Category: Element |
183 | |
184 | ---C++: inline |
185 | ---C++: return & |
186 | |
187 | returns Element from HatchGen |
188 | raises NoSuchObject from Standard |
189 | is static protected ; |
190 | |
191 | |
192 | ElementCurve (me; IndE : Integer from Standard) |
193 | |
194 | ---Purpose: Returns the curve associated to the IndE-th element. |
195 | |
196 | ---Category: Element |
197 | |
198 | ---C++: inline |
199 | ---C++: return const & |
200 | |
201 | returns TheCurveE |
202 | raises NoSuchObject from Standard |
203 | is static ; |
204 | |
205 | |
206 | AddElement (me : in out ; Curve : TheCurveE ; |
207 | Orientation : Orientation from TopAbs = TopAbs_FORWARD) |
208 | |
209 | ---Purpose: Adds an element to the hatcher and returns its index. |
210 | |
211 | ---Category: Element |
212 | |
213 | returns Integer from Standard |
214 | is static ; |
215 | |
216 | |
217 | RemElement (me : in out ; IndE : Integer from Standard) |
218 | |
219 | ---Purpose: Removes the IndE-th element from the hatcher. |
220 | |
221 | ---Category: Element |
222 | |
223 | raises NoSuchObject from Standard |
224 | is static ; |
225 | |
226 | |
227 | ClrElements (me : in out) |
228 | |
229 | ---Purpose: Removes all the elements from the hatcher. |
230 | |
231 | ---Category: Element |
232 | |
233 | is static ; |
234 | |
235 | |
236 | ---Category: Hatching |
237 | |
238 | |
239 | Hatching (me : in out ; IndH : Integer from Standard) |
240 | |
241 | ---Purpose: Returns the IndH-th hatching. |
242 | |
243 | ---Category: Hatching |
244 | |
245 | ---C++: inline |
246 | ---C++: return & |
247 | |
248 | returns Hatching from HatchGen |
249 | raises NoSuchObject from Standard |
250 | is static protected ; |
251 | |
252 | |
253 | HatchingCurve (me; IndH : Integer from Standard) |
254 | |
255 | ---Purpose: Returns the curve associated to the IndH-th hatching. |
256 | |
257 | ---Category: Hatching |
258 | |
259 | ---C++: inline |
260 | ---C++: return const & |
261 | |
262 | returns TheCurveH |
263 | raises NoSuchObject from Standard |
264 | is static ; |
265 | |
266 | |
267 | AddHatching (me : in out ; Curve : TheCurveH) |
268 | |
269 | ---Purpose: Adds a hatching to the hatcher and returns its index. |
270 | |
271 | ---Category: Hatching |
272 | |
273 | returns Integer from Standard |
274 | is static ; |
275 | |
276 | |
277 | RemHatching (me : in out ; IndH : Integer from Standard) |
278 | |
279 | ---Purpose: Removes the IndH-th hatching from the hatcher. |
280 | |
281 | ---Category: Hatching |
282 | |
283 | raises NoSuchObject from Standard |
284 | is static ; |
285 | |
286 | |
287 | ClrHatchings (me : in out) |
288 | |
289 | ---Purpose: Removes all the hatchings from the hatcher. |
290 | |
291 | ---Category: Hatching |
292 | |
293 | is static ; |
294 | |
295 | |
296 | NbPoints (me; IndH : Integer from Standard) |
297 | |
298 | ---Purpose: Returns the number of intersection points of |
299 | -- the IndH-th hatching. |
300 | |
301 | ---Category: Hatching - Test |
302 | |
303 | ---C++: inline |
304 | returns Integer from Standard |
305 | raises NoSuchObject from Standard |
306 | is static ; |
307 | |
308 | |
309 | Point (me; IndH, IndP : Integer from Standard) |
310 | |
311 | ---Purpose: Returns the IndP-th intersection point of the |
312 | -- IndH-th hatching. |
313 | |
314 | ---Category: Hatching - Test |
315 | |
316 | ---C++: inline |
317 | ---C++: return const & |
318 | |
319 | returns PointOnHatching from HatchGen |
320 | raises NoSuchObject from Standard, |
321 | OutOfRange from Standard |
322 | is static ; |
323 | |
324 | |
325 | ---Category: Computation - Trimming |
326 | |
327 | Trim (me : in out) |
328 | |
329 | ---Purpose: Trims all the hatchings of the hatcher by all the |
330 | -- elements of the hatcher. |
331 | |
332 | is static ; |
333 | |
334 | |
335 | Trim (me : in out ; Curve : TheCurveH) |
336 | |
337 | ---Purpose: Adds a hatching to the hatcher and trims it by |
338 | -- the elements already given and returns its index. |
339 | |
340 | ---Category: Computation |
341 | |
342 | returns Integer from Standard |
343 | is static ; |
344 | |
345 | |
346 | Trim (me : in out ; IndH : Integer from Standard) |
347 | |
348 | ---Purpose: Trims the IndH-th hatching by the elements |
349 | -- already given. |
350 | |
351 | ---Category: Computation |
352 | |
353 | raises NoSuchObject from Standard |
354 | is static ; |
355 | |
356 | |
357 | Trim (me : in out ; IndH, IndE : Integer from Standard) |
358 | |
359 | ---Purpose: Trims the IndH-th hatching of the hatcher by the |
360 | -- IndE-th element. |
361 | |
362 | ---Category: Computation |
363 | |
364 | returns Boolean from Standard |
365 | is static private ; |
366 | |
367 | |
368 | ---Category: Computation - Domains |
369 | |
370 | GlobalTransition (me : in out; Point : in out PointOnHatching from HatchGen) |
371 | |
372 | ---Purpose: Sets the global transition (the before and after |
373 | -- states and segment extremities flags) of the point. |
374 | |
375 | ---Category: Computation - Domains |
376 | |
377 | returns Boolean from Standard |
378 | is static private ; |
379 | |
380 | |
381 | ComputeDomains (me : in out) |
382 | |
383 | ---Purpose: Computes the domains of all the hatchings. |
384 | |
385 | ---Category: Computation - Domains |
386 | |
387 | is static ; |
388 | |
389 | |
390 | ComputeDomains (me : in out ; IndH : Integer from Standard) |
391 | |
392 | ---Purpose: Computes the domains of the IndH-th hatching. |
393 | |
394 | ---Category: Computation - Domains |
395 | |
396 | raises NoSuchObject from Standard |
397 | is static ; |
398 | |
399 | |
400 | ---Category: Results |
401 | |
402 | TrimDone (me; IndH : Integer from Standard) |
403 | |
404 | ---Purpose: Returns the fact that the intersections were computed |
405 | -- for the IndH-th hatching. |
406 | |
407 | ---C++: inline |
408 | returns Boolean from Standard |
409 | raises NoSuchObject from Standard |
410 | is static ; |
411 | |
412 | |
413 | TrimFailed (me; IndH : Integer from Standard) |
414 | |
415 | ---Purpose: Returns the fact that the intersections failed |
416 | -- for the IndH-th hatching. |
417 | |
418 | ---C++: inline |
419 | returns Boolean from Standard |
420 | raises NoSuchObject from Standard |
421 | is static ; |
422 | |
423 | |
424 | IsDone (me) |
425 | |
426 | ---Purpose: Returns the fact that the domains were computed |
427 | -- for all the hatchings. |
428 | |
429 | ---C++: inline |
430 | returns Boolean from Standard |
431 | raises NoSuchObject from Standard |
432 | is static ; |
433 | |
434 | |
435 | IsDone (me; IndH : Integer from Standard) |
436 | |
437 | ---Purpose: Returns the fact that the domains were computed |
438 | -- for the IndH-th hatching. |
439 | |
440 | returns Boolean from Standard |
441 | raises NoSuchObject from Standard |
442 | is static ; |
443 | |
444 | |
445 | Status (me; IndH : Integer from Standard) |
446 | |
447 | ---Purpose: Returns the status about the IndH-th hatching. |
448 | |
449 | ---C++: inline |
450 | returns ErrorStatus from HatchGen |
451 | raises NoSuchObject from Standard |
452 | is static ; |
453 | |
454 | |
455 | NbDomains (me; IndH : Integer from Standard) |
456 | |
457 | ---Purpose: Returns the number of domains of the IndH-th hatching. |
458 | -- Only ONE "INFINITE" domain means that the hatching is |
459 | -- fully included in the contour defined by the elements. |
460 | |
461 | ---C++: inline |
462 | returns Integer from Standard |
463 | raises NoSuchObject from Standard , |
464 | NotDone from StdFail |
465 | is static ; |
466 | |
467 | |
468 | Domain (me; IndH : Integer from Standard ; |
469 | IDom : Integer from Standard ) |
470 | |
471 | ---Purpose: Returns the IDom-th domain of the IndH-th hatching. |
472 | |
473 | ---C++: return const & |
474 | |
475 | returns Domain from HatchGen |
476 | raises NoSuchObject from Standard , |
477 | NotDone from StdFail , |
478 | OutOfRange from Standard |
479 | is static ; |
480 | |
481 | |
482 | ---Category: Dump |
483 | |
484 | Dump (me) |
485 | |
486 | ---Purpose: Dump the hatcher. |
487 | |
488 | is static ; |
489 | |
490 | |
491 | fields |
492 | |
493 | myIntersector : TheIntersector ; |
494 | myConfusion2d : Real from Standard ; |
495 | myConfusion3d : Real from Standard ; |
496 | myKeepPoints : Boolean from Standard ; |
497 | myKeepSegments : Boolean from Standard ; |
498 | myNbElements : Integer from Standard ; |
499 | myElements : Elements from HatchGen ; |
500 | myNbHatchings : Integer from Standard ; |
501 | myHatchings : Hatchings from HatchGen ; |
502 | |
503 | end Hatcher from HatchGen ; |