Commit | Line | Data |
---|---|---|
b311480e | 1 | -- Created on: 1991-09-06 |
2 | -- Created by: NW,JPB,CAL | |
3 | -- Copyright (c) 1991-1999 Matra Datavision | |
4 | -- Copyright (c) 1999-2012 OPEN CASCADE SAS | |
5 | -- | |
6 | -- The content of this file is subject to the Open CASCADE Technology Public | |
7 | -- License Version 6.5 (the "License"). You may not use the content of this file | |
8 | -- except in compliance with the License. Please obtain a copy of the License | |
9 | -- at http://www.opencascade.org and read it completely before using this file. | |
10 | -- | |
11 | -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its | |
12 | -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. | |
13 | -- | |
14 | -- The Original Code and all software distributed under the License is | |
15 | -- distributed on an "AS IS" basis, without warranty of any kind, and the | |
16 | -- Initial Developer hereby disclaims all such warranties, including without | |
17 | -- limitation, any warranties of merchantability, fitness for a particular | |
18 | -- purpose or non-infringement. Please see the License for the specific terms | |
19 | -- and conditions governing the rights and limitations under the License. | |
20 | ||
21 | -- 27/09/97 ; PCT : add manual control of textures | |
22 | -- 11/97 ; CAL : ajout polyline par 2 points | |
23 | -- 16/06/2000 : ATS: Study G005 - Group store presentations of it's objects in field | |
24 | -- MyListOfPArray to avoid deletion of handle-manipulating | |
25 | -- primitives. | |
26 | class Group from Graphic3d inherits TShared | |
7fd59977 | 27 | |
28 | ---Version: | |
29 | ||
30 | ---Purpose: This class allows the definition of groups | |
31 | -- of primitives inside of graphic objects (presentations). | |
32 | -- A group contains the primitives and attributes | |
33 | -- for which the range is limited to this group. | |
34 | -- The primitives of a group can be globally suppressed. | |
35 | -- | |
36 | -- There are two main group usage models: | |
37 | -- | |
38 | -- 1) Non-modifiable, or unbounded, group ('black box'). | |
39 | -- Developers can repeat a sequence of | |
40 | -- SetPrimitivesAspect() with AddPrimitiveArray() methods arbitrary number of times | |
41 | -- to define arbitrary number of primitive "blocks" each having individual apect values. | |
42 | -- Any modification of such a group is forbidden, as aspects and primitives are mixed | |
43 | -- in memory without any high-level logical structure, and any modification is very likely to result | |
44 | -- in corruption of the group internal data. | |
45 | -- It is necessary to recreate such a group as a whole when some attribute should be changed. | |
46 | -- (for example, in terms of AIS it is necessary to re-Compute() the whole presentation each time). | |
47 | -- 2) Bounded group. Developers should specify the necessary group aspects with help of | |
48 | -- SetGroupPrimitivesAspect() and then add primitives to the group. | |
49 | -- Such a group have simplified organization in memory (a single block of attributes | |
50 | -- followed by a block of primitives) and therefore it can be modified, if it is necessary to | |
51 | -- change parameters of some aspect that has already been set, using methods: | |
52 | -- IsGroupPrimitivesAspectSet() to detect which aspect was set for primitives; | |
53 | -- GroupPrimitivesAspect() to read current aspect values | |
54 | -- and SetGroupPrimitivesAspect() to set new values. | |
55 | -- | |
56 | -- Developers are strongly recommended to take all the above into account when filling Graphic3d_Group | |
57 | -- with aspects and primitives and choose the group usage model beforehand out of application needs. | |
58 | ||
59 | ---Warning: | |
60 | ---References: | |
61 | ||
62 | uses | |
63 | ||
64 | Array1OfInteger from TColStd, | |
65 | Array1OfReal from TColStd, | |
66 | HArray1OfByte from TColStd, | |
67 | ||
68 | ExtendedString from TCollection, | |
69 | ||
70 | PlaneAngle from Quantity, | |
71 | ||
72 | Array1OfEdge from Aspect, | |
73 | Edge from Aspect, | |
74 | ||
75 | GroupAspect from Graphic3d, | |
76 | AspectLine3d from Graphic3d, | |
77 | AspectMarker3d from Graphic3d, | |
78 | AspectText3d from Graphic3d, | |
79 | AspectFillArea3d from Graphic3d, | |
80 | HorizontalTextAlignment from Graphic3d, | |
81 | CBitFields4 from Graphic3d, | |
82 | CGroup from Graphic3d, | |
83 | GraphicDriver from Graphic3d, | |
84 | Structure from Graphic3d, | |
85 | TextPath from Graphic3d, | |
86 | TypeOfPolygon from Graphic3d, | |
87 | Vector from Graphic3d, | |
88 | Array1OfVertex from Graphic3d, | |
89 | Array2OfVertex from Graphic3d, | |
90 | Vertex from Graphic3d, | |
91 | Array1OfVertexC from Graphic3d, | |
92 | Array2OfVertexC from Graphic3d, | |
93 | VertexC from Graphic3d, | |
94 | Array1OfVertexN from Graphic3d, | |
95 | Array2OfVertexN from Graphic3d, | |
96 | VertexN from Graphic3d, | |
97 | Array1OfVertexNC from Graphic3d, | |
98 | Array2OfVertexNC from Graphic3d, | |
99 | VertexNC from Graphic3d, | |
100 | VerticalTextAlignment from Graphic3d, | |
101 | VertexNT from Graphic3d, | |
102 | Array1OfVertexNT from Graphic3d, | |
103 | Array2OfVertexNT from Graphic3d, | |
104 | ArrayOfPrimitives from Graphic3d, | |
105 | ListOfPArray from Graphic3d, | |
106 | ListIteratorOfListOfPArray from Graphic3d, | |
107 | TransModeFlags from Graphic3d, | |
108 | CBounds from Graphic3d | |
109 | ||
110 | raises | |
111 | ||
112 | GroupDefinitionError from Graphic3d, | |
113 | PickIdDefinitionError from Graphic3d, | |
114 | OutOfRange from Standard | |
115 | ||
116 | is | |
117 | Create ( AStructure : Structure from Graphic3d ) | |
118 | returns mutable Group from Graphic3d; | |
119 | ---Level: Public | |
120 | ---Purpose: Creates a group in the structure <AStructure>. | |
121 | ||
122 | --------------------------------------------------- | |
123 | -- Category: Methods to modify the class definition | |
124 | --------------------------------------------------- | |
125 | ||
6c8126b5 A |
126 | Clear ( me : mutable; |
127 | theUpdateStructureMgr : Boolean from Standard = Standard_True ) | |
7fd59977 | 128 | is static; |
129 | ---Level: Public | |
130 | ---Purpose: Supress all primitives and attributes of <me>. | |
6c8126b5 A |
131 | -- To clear group without update in Graphic3d_StructureManager |
132 | -- pass Standard_False as <theUpdateStructureMgr>. This | |
133 | -- used on context and viewer destruction, when the pointer | |
134 | -- to structure manager in Graphic3d_Structure could be | |
135 | -- already released (pointers are used here to avoid handle | |
136 | -- cross-reference); | |
7fd59977 | 137 | ---Category: Methods to modify the class definition |
138 | ||
139 | Destroy ( me : mutable ) | |
140 | is static; | |
141 | ---Level: Public | |
142 | ---Purpose: Supress the group <me> in the structure. | |
143 | ---Category: Methods to modify the class definition | |
144 | ---C++: alias ~ | |
145 | ||
146 | Remove ( me : mutable ) | |
147 | is static; | |
148 | ---Level: Public | |
149 | ---Purpose: Supress the group <me> in the structure. | |
150 | -- Warning: No more graphic operations in <me> after this call. | |
151 | ---Category: Methods to modify the class definition | |
152 | ||
153 | --SetTransformPersistence( me : mutable; | |
154 | -- AFlag : TransModeFlags from Graphic3d ) | |
155 | ---Level: Public | |
156 | ---Purpose: Modifies the current modelling transform persistence (pan, zoom or rotate) | |
157 | --is static; | |
158 | ||
159 | --TransformPersistence( me ) | |
160 | -- returns TransModeFlags from Graphic3d | |
161 | ---Level: Public | |
162 | ---Purpose: Get the current modelling transform persistence (pan, zoom or rotate) | |
163 | --is static; | |
164 | ||
165 | SetGroupPrimitivesAspect ( me : mutable ) | |
166 | is static; | |
167 | ---Level: Public | |
168 | ---Purpose: Removes the context for all the line primitives | |
169 | -- of the group. | |
170 | ---Category: Methods to modify the class definition | |
171 | ||
172 | SetGroupPrimitivesAspect ( me : mutable; | |
173 | CTX : AspectLine3d from Graphic3d ) | |
174 | is static; | |
175 | ---Level: Public | |
176 | ---Purpose: Modifies the context for all the line primitives | |
177 | -- of the group. | |
178 | ---Category: Methods to modify the class definition | |
179 | ||
180 | SetGroupPrimitivesAspect ( me : mutable; | |
181 | CTX : AspectFillArea3d from Graphic3d ) | |
182 | is static; | |
183 | ---Level: Public | |
184 | ---Purpose: Modifies the context for all the face primitives | |
185 | -- of the group. | |
186 | ---Category: Methods to modify the class definition | |
187 | ||
188 | SetGroupPrimitivesAspect ( me : mutable; | |
189 | CTX : AspectText3d from Graphic3d ) | |
190 | is static; | |
191 | ---Level: Public | |
192 | ---Purpose: Modifies the context for all the text primitives | |
193 | -- of the group. | |
194 | ---Category: Methods to modify the class definition | |
195 | ||
196 | SetGroupPrimitivesAspect ( me : mutable; | |
197 | CTX : AspectMarker3d from Graphic3d ) | |
198 | is static; | |
199 | ---Level: Public | |
200 | ---Purpose: Modifies the context for all the marker primitives | |
201 | -- of the group. | |
202 | ---Category: Methods to modify the class definition | |
203 | ||
204 | SetPrimitivesAspect ( me : mutable; | |
205 | CTX : AspectLine3d from Graphic3d ) | |
206 | is static; | |
207 | ---Level: Public | |
208 | ---Purpose: Modifies the current context of the group to give | |
209 | -- another aspect for all the line primitives created | |
210 | -- after this call in the group. | |
211 | ---Category: Methods to modify the class definition | |
212 | ||
213 | SetPrimitivesAspect ( me : mutable; | |
214 | CTX : AspectFillArea3d from Graphic3d ) | |
215 | is static; | |
216 | ---Level: Public | |
217 | ---Purpose: Modifies the current context of the group to give | |
218 | -- another aspect for all the face primitives created | |
219 | -- after this call in the group. | |
220 | ---Category: Methods to modify the class definition | |
221 | ||
222 | SetPrimitivesAspect ( me : mutable; | |
223 | CTX : AspectText3d from Graphic3d ) | |
224 | is static; | |
225 | ---Level: Public | |
226 | ---Purpose: Modifies the current context of the group to give | |
227 | -- another aspect for all the text primitives created | |
228 | -- after this call in the group. | |
229 | ---Category: Methods to modify the class definition | |
230 | ||
231 | SetPrimitivesAspect ( me : mutable; | |
232 | CTX : AspectMarker3d from Graphic3d ) | |
233 | is static; | |
234 | ---Level: Public | |
235 | ---Purpose: Modifies the current context of the group to give | |
236 | -- another aspect for all the marker primitives created | |
237 | -- after this call in the group. | |
238 | ---Category: Methods to modify the class definition | |
239 | ||
240 | SetMinMaxValues ( me : mutable; | |
241 | XMin, YMin, ZMin : Real from Standard; | |
242 | XMax, YMax, ZMax : Real from Standard ) | |
243 | is static; | |
244 | ---Level: Public | |
245 | ---Purpose: Sets the coordinates of the boundary box of the | |
246 | -- group <me>. | |
247 | ---Category: Methods to modify the class definition | |
248 | ||
7fd59977 | 249 | ------------------------------------- |
250 | -- Category: Methods to create Marker | |
251 | ------------------------------------- | |
252 | ||
253 | --------------------------------------------- | |
254 | -- Summary of Markers -- | |
255 | -- -- | |
256 | -- They should have one or more vertices. -- | |
257 | -- -- | |
258 | -- They have the following attributes. -- | |
259 | -- -- | |
260 | -- Marker Type. -- | |
261 | -- Marker Scale Factor. -- | |
262 | -- Marker Color. -- | |
263 | -- -- | |
264 | -- The size, shape and orientation of a -- | |
265 | -- marker is not subject to transformation -- | |
266 | --------------------------------------------- | |
267 | ||
268 | Marker ( me : mutable; | |
269 | APoint : Vertex from Graphic3d; | |
270 | EvalMinMax : Boolean from Standard = Standard_True ) | |
271 | is static; | |
272 | ---Level: Public | |
273 | ---Purpose: Creates a marker in position <APoint> which will be drawn | |
274 | -- with the current attribute (AspectMarker). | |
275 | ---Category: Methods to create Marker | |
276 | ||
277 | MarkerSet ( me : mutable; | |
278 | ListVertex : Array1OfVertex from Graphic3d; | |
279 | EvalMinMax : Boolean from Standard = Standard_True ) | |
280 | is static; | |
281 | ---Purpose: Creates a group of markers defined by a table of | |
282 | -- vertices. | |
283 | ---Category: Methods to create Marker | |
284 | ||
285 | -------------------------------------- | |
286 | -- Category: Methods to create Polygon | |
287 | -------------------------------------- | |
288 | ||
289 | -------------------------------------------------- | |
290 | -- Summary of Polygons -- | |
291 | -- -- | |
292 | -- They are limited to one boundary. -- | |
293 | -- -- | |
294 | -- The boundary should be closed. -- | |
295 | -- -- | |
296 | -- They should have at least three vertices. -- | |
297 | -- -- | |
298 | -- They should be planar. -- | |
299 | -- -- | |
300 | -- They should have a normal. -- | |
301 | -- -- | |
302 | -- The boundary is drawn only when the interior -- | |
303 | -- style is hollow. -- | |
304 | -- -- | |
305 | -- The boundary have the following attributes : -- | |
306 | -- -- | |
307 | -- Line Type. -- | |
308 | -- Line Width Scale Factor. -- | |
309 | -- Line Color. -- | |
310 | -- -- | |
311 | -- They have only interior attributes : -- | |
312 | -- -- | |
313 | -- Interior Style. -- | |
314 | -- Interior Color. -- | |
315 | -- Front Material. -- | |
316 | -- Back Material. -- | |
317 | -------------------------------------------------- | |
318 | ||
319 | Polygon ( me : mutable; | |
320 | ListVertex : Array1OfVertex from Graphic3d; | |
321 | AType : TypeOfPolygon from Graphic3d = Graphic3d_TOP_CONVEX; | |
322 | EvalMinMax : Boolean from Standard = Standard_True ) | |
323 | is static; | |
324 | ---Level: Public | |
325 | ---Purpose: Links up points to create a face drawn | |
326 | -- using the current fill attributes (AspectFillArea3d)) | |
327 | -- The first and last points are not duplicates. | |
328 | ---Category: Methods to create Polygon | |
2bd4c032 | 329 | |
7fd59977 | 330 | PolygonSet ( me : mutable; |
331 | Bounds : Array1OfInteger from TColStd; | |
332 | ListVertex : Array1OfVertex from Graphic3d; | |
333 | AType : TypeOfPolygon from Graphic3d = Graphic3d_TOP_CONVEX; | |
334 | EvalMinMax : Boolean from Standard = Standard_True ) | |
335 | is static; | |
336 | ---Level: Public | |
337 | ---Purpose: Links up points to create a set of face drawn | |
338 | -- using the current fill attributes (AspectFillArea3d)) | |
339 | -- The first and last points are not duplicates. | |
340 | ---Category: Methods to create Polygon | |
341 | ||
342 | --------------------------------------- | |
343 | -- Category: Methods to create Polyline | |
344 | --------------------------------------- | |
345 | ||
346 | -------------------------------------------- | |
347 | -- Summary of Polylines -- | |
348 | -- -- | |
349 | -- They should have two or more vertices. -- | |
350 | -- -- | |
351 | -- They have the following attributes. -- | |
352 | -- -- | |
353 | -- Line Type. -- | |
354 | -- Line Width Scale Factor. -- | |
355 | -- Line Color. -- | |
356 | -------------------------------------------- | |
357 | ||
358 | Polyline ( me : mutable; | |
359 | APT1 : Vertex from Graphic3d; | |
360 | APT2 : Vertex from Graphic3d; | |
361 | EvalMinMax : Boolean from Standard = Standard_True ) | |
362 | is static; | |
363 | ---Level: Public | |
364 | ---Purpose: Links up points to create a line drawn | |
365 | -- using the current line attributes (AspectLine) | |
366 | ---Category: Methods to create Polyline | |
367 | ||
368 | Polyline ( me : mutable; | |
369 | ListVertex : Array1OfVertex from Graphic3d; | |
370 | EvalMinMax : Boolean from Standard = Standard_True ) | |
371 | is static; | |
372 | ---Level: Public | |
373 | ---Purpose: Links up points to create a line drawn | |
374 | -- using the current line attributes (AspectLine) | |
375 | ---Category: Methods to create Polyline | |
376 | ||
377 | Polyline ( me : mutable; | |
378 | ListVertex : Array1OfVertexC from Graphic3d; | |
379 | EvalMinMax : Boolean from Standard = Standard_True ) | |
380 | is static; | |
381 | ---Level: Public | |
382 | ---Purpose: Links up points to create a line drawn | |
383 | -- using the current line attributes (AspectLine) | |
384 | -- except for the colour which is defined | |
385 | -- for each vertex. | |
386 | ---Category: Methods to create Polyline | |
387 | ||
7fd59977 | 388 | ----------------------------------- |
389 | -- Category: Methods to create Text | |
390 | ----------------------------------- | |
391 | ||
392 | -------------------------------------------- | |
393 | -- Summary of Texts -- | |
394 | -- -- | |
395 | -- Text has geometric and nongeometric -- | |
396 | -- attributes. -- | |
397 | -- -- | |
398 | -- The geometric text attributes are : -- | |
399 | -- -- | |
400 | -- Character Height. -- | |
401 | -- Character Up Vector. -- | |
402 | -- Text Path. -- | |
403 | -- Text Alignment Horizontal. -- | |
404 | -- Text Alignment Vertical. -- | |
405 | -- -- | |
406 | -- The nongeometric text attributes are : -- | |
407 | -- -- | |
408 | -- Text Font. -- | |
409 | -- Character Spacing. -- | |
410 | -- Character Expansion Factor. -- | |
411 | -- Text Color. -- | |
412 | -------------------------------------------- | |
413 | ||
414 | Text ( me : mutable; | |
415 | AText : CString from Standard; | |
416 | APoint : Vertex from Graphic3d; | |
417 | AHeight : Real from Standard; | |
418 | AAngle : PlaneAngle from Quantity; | |
419 | ATp : TextPath from Graphic3d; | |
420 | AHta : HorizontalTextAlignment from Graphic3d; | |
421 | AVta : VerticalTextAlignment from Graphic3d; | |
422 | EvalMinMax : Boolean from Standard = Standard_True ) | |
423 | is static; | |
424 | ---Level: Public | |
425 | ---Purpose: Creates the string <AText> at position <APoint>. | |
426 | -- The 3D point of attachment is projected. The text is | |
427 | -- written in the plane of projection. | |
428 | -- The attributes are given with respect to the plane of | |
429 | -- projection. | |
430 | -- AHeight : Height of text. | |
431 | -- (Relative to the Normalized Projection | |
432 | -- Coordinates (NPC) Space). | |
433 | -- AAngle : Orientation of the text | |
434 | -- (with respect to the horizontal). | |
435 | ---Category: Methods to create Text | |
436 | ||
437 | Text ( me : mutable; | |
438 | AText : CString from Standard; | |
439 | APoint : Vertex from Graphic3d; | |
440 | AHeight : Real from Standard; | |
441 | EvalMinMax : Boolean from Standard = Standard_True ) | |
442 | is static; | |
443 | ---Level: Public | |
444 | ---Purpose: Creates the string <AText> at position <APoint>. | |
445 | -- The 3D point of attachment is projected. The text is | |
446 | -- written in the plane of projection. | |
447 | -- The attributes are given with respect to the plane of | |
448 | -- projection. | |
449 | -- AHeight : Height of text. | |
450 | -- (Relative to the Normalized Projection | |
451 | -- Coordinates (NPC) Space). | |
452 | -- The other attributes have the following default values: | |
453 | -- AAngle : PI / 2. | |
454 | -- ATp : TP_RIGHT | |
455 | -- AHta : HTA_LEFT | |
456 | -- AVta : VTA_BOTTOM | |
457 | ---Category: Methods to create Text | |
458 | ||
459 | Text ( me : mutable; | |
460 | AText : ExtendedString from TCollection; | |
461 | APoint : Vertex from Graphic3d; | |
462 | AHeight : Real from Standard; | |
463 | AAngle : PlaneAngle from Quantity; | |
464 | ATp : TextPath from Graphic3d; | |
465 | AHta : HorizontalTextAlignment from Graphic3d; | |
466 | AVta : VerticalTextAlignment from Graphic3d; | |
467 | EvalMinMax : Boolean from Standard = Standard_True ) | |
468 | is static; | |
469 | ---Level: Internal | |
470 | ---Purpose: Creates the string <AText> at position <APoint>. | |
471 | -- The 3D point of attachment is projected. The text is | |
472 | -- written in the plane of projection. | |
473 | -- The attributes are given with respect to the plane of | |
474 | -- projection. | |
475 | -- AHeight : Height of text. | |
476 | -- (Relative to the Normalized Projection | |
477 | -- Coordinates (NPC) Space). | |
478 | -- AAngle : Orientation of the text | |
479 | -- (with respect to the horizontal). | |
480 | ---Category: Methods to create Text | |
481 | ||
482 | Text ( me : mutable; | |
483 | AText : ExtendedString from TCollection; | |
484 | APoint : Vertex from Graphic3d; | |
485 | AHeight : Real from Standard; | |
486 | EvalMinMax : Boolean from Standard = Standard_True ) | |
487 | is static; | |
488 | ---Level: Internal | |
489 | ---Purpose: Creates the string <AText> at position <APoint>. | |
490 | -- The 3D point of attachment is projected. The text is | |
491 | -- written in the plane of projection. | |
492 | -- The attributes are given with respect to the plane of | |
493 | -- projection. | |
494 | -- AHeight : Height of text. | |
495 | -- (Relative to the Normalized Projection | |
496 | -- Coordinates (NPC) Space). | |
497 | -- The other attributes have the following default values: | |
498 | -- AAngle : PI / 2. | |
499 | -- ATp : TP_RIGHT | |
500 | -- AHta : HTA_LEFT | |
501 | -- AVta : VTA_BOTTOM | |
502 | ---Category: Methods to create Text | |
503 | ||
504 | --------------------------------------- | |
505 | ---Category: Methods to create Triangle | |
506 | --------------------------------------- | |
2bd4c032 | 507 | |
7fd59977 | 508 | AddPrimitiveArray( me : mutable; |
509 | elem : ArrayOfPrimitives from Graphic3d; | |
510 | EvalMinMax: Boolean from Standard = Standard_True ); | |
511 | ---Level: Public | |
512 | ---Purpose: Adds an array of primitives for display | |
513 | ||
514 | RemovePrimitiveArray( me : mutable; | |
515 | aRank : Integer from Standard) | |
516 | ---Level: Public | |
517 | ---Purpose: Remove the array of primitives of rank <aRank> | |
518 | raises OutOfRange from Standard is static; | |
519 | -- if <aRank> is < 1 or > ArrayNumber() | |
520 | ||
521 | RemovePrimitiveArrays( me : mutable); | |
522 | ---Level: Public | |
523 | ---Purpose: Remove all array of primitives | |
524 | ||
b311480e | 525 | UserDraw ( me : mutable; |
526 | AnObject : Address from Standard; | |
527 | EvalMinMax : Boolean from Standard = Standard_True; | |
528 | ContainsFacet: Boolean from Standard = Standard_False | |
529 | ) | |
530 | ---Level: Public | |
531 | ---Purpose: Creates an UserDraw primitive | |
532 | -- Category: Methods to create UserDraw | |
533 | -- Warning: Raises GroupDefinitionError if ... | |
534 | raises GroupDefinitionError from Graphic3d is static; | |
7fd59977 | 535 | |
536 | ---------------------------- | |
537 | -- Category: Inquire methods | |
538 | ---------------------------- | |
539 | ||
540 | ArrayNumber( me ) | |
541 | returns Integer from Standard; | |
542 | ---Level: Public | |
543 | ---Purpose: Returns the number of primitive array added in this group | |
544 | ||
545 | InitDefinedArray( me:mutable ); | |
546 | ---Level: Public | |
547 | ---Purpose: Initialize the array list iterator. | |
548 | ||
549 | NextDefinedArray( me:mutable ); | |
550 | ---Level: Public | |
551 | ---Purpose: Increments the array list iterator. | |
552 | ||
553 | MoreDefinedArray( me:mutable ) | |
554 | returns Boolean from Standard; | |
555 | ---Level: Public | |
556 | ---Purpose: Returns TRUE if more array exists in the list. | |
557 | ||
558 | DefinedArray( me ) | |
559 | returns mutable ArrayOfPrimitives from Graphic3d; | |
560 | ---Level: Public | |
561 | ---Purpose: Returns the current array of primitives according | |
562 | -- to the array list iterator value. | |
563 | ||
564 | IsGroupPrimitivesAspectSet ( me; | |
565 | theAspect : GroupAspect from Graphic3d ) | |
566 | returns Boolean from Standard | |
567 | is static; | |
568 | ---Level: Public | |
569 | ---Purpose: Returns TRUE if aspect is set for the group. | |
570 | ---Category: Inquire methods | |
571 | ||
572 | GroupPrimitivesAspect ( me; | |
573 | CTXL : AspectLine3d from Graphic3d; | |
574 | CTXT : AspectText3d from Graphic3d; | |
575 | CTXM : AspectMarker3d from Graphic3d; | |
576 | CTXF : AspectFillArea3d from Graphic3d ) | |
577 | is static; | |
578 | ---Level: Public | |
579 | ---Purpose: Returns the context of all the primitives of the group. | |
580 | ---Category: Inquire methods | |
581 | ||
582 | PrimitivesAspect ( me; | |
583 | CTXL : AspectLine3d from Graphic3d; | |
584 | CTXT : AspectText3d from Graphic3d; | |
585 | CTXM : AspectMarker3d from Graphic3d; | |
586 | CTXF : AspectFillArea3d from Graphic3d ) | |
587 | is static; | |
588 | ---Level: Public | |
589 | ---Purpose: Returns the last inserted context in the group <me> | |
590 | -- foreach kind of primitives. | |
591 | ---Category: Inquire methods | |
592 | ||
593 | ContainsFacet ( me ) | |
594 | returns Boolean from Standard | |
595 | is static; | |
596 | ---Level: Internal | |
597 | ---Purpose: Returns Standard_True if the group <me> contains | |
598 | -- Polygons, Triangles or Quadrangles. | |
599 | ---Category: Inquire methods | |
600 | ||
601 | IsDeleted ( me ) | |
602 | returns Boolean from Standard | |
603 | is static; | |
604 | ---Level: Public | |
605 | ---Purpose: Returns Standard_True if the group <me> is deleted. | |
606 | -- <me> is deleted after the call Remove (me) or the | |
607 | -- associated structure is deleted. | |
608 | ---Category: Inquire methods | |
609 | ||
610 | IsEmpty ( me ) | |
611 | returns Boolean from Standard | |
612 | is static; | |
613 | ---Level: Public | |
614 | ---Purpose: Returns Standard_True if the group <me> is empty. | |
615 | ---Warning: A group is empty if the MinMaxValues method returns : | |
616 | -- XMin = YMin = ZMin = RealFirst (). | |
617 | -- XMax = YMax = ZMax = RealLast (). | |
618 | ---Category: Inquire methods | |
619 | ||
620 | MinMaxValues ( me; | |
621 | XMin, YMin, ZMin : out Real from Standard; | |
622 | XMax, YMax, ZMax : out Real from Standard ) | |
623 | is static; | |
624 | ---Level: Public | |
625 | ---Purpose: Returns the coordinates of the boundary box of the | |
626 | -- group <me>. | |
627 | ---Warning: If the group <me> is empty then : | |
628 | -- XMin = YMin = ZMin = RealFirst (). | |
629 | -- XMax = YMax = ZMax = RealLast (). | |
630 | ---Category: Inquire methods | |
631 | ||
632 | Structure ( me ) | |
633 | returns mutable Structure from Graphic3d | |
634 | is static; | |
635 | ---Level: Public | |
636 | ---Purpose: Returns the structure containing the group <me>. | |
637 | ---Category: Inquire methods | |
638 | ||
639 | ---------------------------- | |
640 | -- Category: Private methods | |
641 | ---------------------------- | |
8ca7beb8 | 642 | |
7fd59977 | 643 | Labels ( me; |
644 | LB, LE : in out Integer from Standard ) | |
645 | is static private; | |
646 | ---Level: Internal | |
647 | ---Purpose: Returns the position of the group in the structure. | |
648 | ---Category: Private methods | |
649 | ||
650 | MinMaxCoord ( me; | |
651 | XMin, YMin, ZMin : out Real from Standard; | |
652 | XMax, YMax, ZMax : out Real from Standard ) | |
653 | is static private; | |
654 | ---Level: Internal | |
655 | ---Purpose: Returns the extreme coordinates found in the group. | |
656 | ---Warning: If the group <me> is empty then : | |
657 | -- XMin = YMin = ZMin = RealFirst (). | |
658 | -- XMax = YMax = ZMax = RealLast (). | |
659 | ---Category: Private methods | |
660 | ||
661 | Update ( me ) | |
662 | is static private; | |
663 | ---Level: Internal | |
664 | ---Purpose: Calls the Update method of the StructureManager which | |
665 | -- contains the associated Structure of the Group <me>. | |
666 | ---Category: Private methods | |
667 | ||
668 | ----------------------------- | |
669 | -- Category: Internal methods | |
670 | ----------------------------- | |
671 | ||
672 | BeginPrimitives ( me : mutable ) | |
673 | is static; | |
674 | ---Level: Internal | |
675 | ---Category: Internal methods | |
676 | ||
677 | EndPrimitives ( me : mutable ) | |
678 | is static; | |
679 | ---Level: Internal | |
680 | ---Category: Internal methods | |
2bd4c032 | 681 | |
7fd59977 | 682 | -- |
683 | ||
684 | fields | |
685 | ||
686 | -- | |
687 | -- Class : Graphic3d_Group | |
688 | -- | |
689 | -- Purpose : Declaration of variables specific to groups | |
690 | -- of primitives. | |
691 | -- | |
692 | -- Reminder : A group is defined in a structure | |
693 | -- It acts as the smallest editable entity. | |
694 | ||
695 | -- the associated C structure | |
696 | MyCGroup : CGroup from Graphic3d; | |
697 | ||
698 | -- the graphic driver used | |
699 | MyGraphicDriver : GraphicDriver from Graphic3d; | |
700 | ||
701 | -- the state of the different contexts for primitives | |
702 | MyCBitFields : CBitFields4 from Graphic3d; | |
703 | ||
704 | -- the structure contains the group | |
705 | MyPtrStructure : Address from Standard; | |
706 | ||
707 | -- the min-max | |
708 | MyBounds : CBounds from Graphic3d; | |
709 | ||
710 | MyListOfPArray : ListOfPArray from Graphic3d; | |
711 | MyListOfPArrayIterator : ListIteratorOfListOfPArray from Graphic3d; | |
712 | ||
713 | MyMarkArray : HArray1OfByte from TColStd; | |
714 | MyMarkWidth : Integer from Standard; | |
715 | MyMarkHeight : Integer from Standard; | |
716 | ||
717 | friends | |
718 | ||
719 | Remove from class Structure from Graphic3d | |
720 | ( me : mutable; AGroup : Group from Graphic3d ) | |
721 | ||
722 | end Group; |