0023544: Texture management in TKOpenGl should be redesigned
[occt.git] / src / Graphic3d / Graphic3d_Group.cdl
CommitLineData
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.
26class 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;