0024001: Stereographic rendering support
[occt.git] / src / V3d / V3d_Viewer.cdl
1 -- Created on: 1992-01-17
2 -- Created by: GG
3 -- Copyright (c) 1992-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
8 -- This library is free software; you can redistribute it and / or modify it
9 -- under the terms of the GNU Lesser General Public version 2.1 as published
10 -- by the Free Software Foundation, with special exception defined in the file
11 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 -- distribution for complete text of the license and disclaimer of any warranty.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 -- Modified FMN - 02/02/98 -> Specifique UNIX
18 --          CAL - 16/07/98 -> S3892. Ajout grilles 3d.
19 --          GG  - 15/12/99 -> GER61351 Add SetDefaultBackgroundColor()
20 --                                     and DefaultBackgroundColor() methods
21 --          GG  - 20/01/00 -> IMP200100 Add GridDrawMode() method
22 --          GG  - 24/01/00 -> IMP240100 Add SetGridEcho() methods
23 --                                      Add GridEcho() method.
24 --                                      Add ShowGridEcho() private method
25 --          SAV - 26/11/02 -> Add new field to store grid echo aspect
26
27 class Viewer from V3d inherits TShared from MMgt
28
29         ---Version:
30
31         ---Purpose: Defines services on Viewer type objects.
32         --            The methods of this class allow editing and
33         --            interrogation of the parameters linked to the viewer
34         --            its friend classes (View,light,plane).
35
36         ---Keywords: Viewer,Default Attributes
37
38         ---References:
39
40 uses
41
42         GraphicDriver from Graphic3d,
43         TypeOfUpdate from V3d,
44         TypeOfVisualization from V3d,
45         TypeOfShadingModel from V3d,
46         TypeOfSurfaceDetail from V3d,
47         TypeOfOrientation from V3d,
48         View from V3d,
49         Light from V3d,
50         ListOfTransient from V3d,
51         ListIteratorOfListOfTransient from TColStd,
52         SequenceOfInteger from TColStd,
53         TypeOfView from V3d,
54         Vector from Graphic3d,
55         ViewManager from Visual3d,
56         NameOfColor from Quantity,
57         TypeOfColor from Quantity,
58         Color from Quantity,
59         Length from Quantity,
60         PlaneAngle from Quantity,
61         Background from Aspect,
62         GradientBackground from Aspect,
63         Parameter from Quantity,
64         AsciiString,ExtendedString from TCollection,
65         Ax3 from gp,Structure from Graphic3d,
66         Vertex from Graphic3d,
67         Group from Graphic3d,
68         AspectMarker3d from Graphic3d,
69         RectangularGrid from V3d,
70         CircularGrid from V3d,
71         Grid from Aspect,
72         GridType from Aspect,
73         GridDrawMode from Aspect,
74         GradientFillMethod from Aspect
75
76 raises
77
78         BadValue from V3d
79
80 is
81
82         Create (theDriver         : GraphicDriver from Graphic3d;
83                 theName           : ExtString from Standard;
84                 theDomain         : CString from Standard = "";
85                 theViewSize       : Length from Quantity = 1000.0 ;
86                 theViewProj       : TypeOfOrientation from V3d= V3d_XposYnegZpos ;
87                 theViewBackground : NameOfColor from Quantity = Quantity_NOC_GRAY30;
88                 theVisualization  : TypeOfVisualization from V3d = V3d_ZBUFFER;
89                 theShadingModel   : TypeOfShadingModel  from V3d = V3d_GOURAUD ;
90                 theUpdateMode     : TypeOfUpdate from V3d = V3d_WAIT;
91                 theComputedMode   : Boolean from Standard = Standard_True;
92                 theDefaultComputedMode: Boolean from Standard = Standard_True;
93                 theSurfaceDetail  : TypeOfSurfaceDetail  from V3d = V3d_TEX_NONE)
94         returns mutable Viewer from V3d
95         ---Purpose: Create a Viewer with the given graphic driver and the given parameters  or
96         --          with their default values.
97         --          Currently creating of more than 100 viewer instances 
98               --          is not supported and leads to an exception.
99               --          This limitation might be addressed in some future OCCT releases.
100         raises BadValue from V3d ;
101         ---Purpose:        If the size of the view is <= 0
102         --  Warning: Client must creates a graphic driver
103
104         CreateView (me: mutable) returns mutable View from V3d;
105         ---Level: Public
106         ---Purpose: creates a view in the viewer according to its
107         --          default parameters.
108
109         -------------------------------------------------------
110         ---Category: Methods to modify the status of the viewer
111         -------------------------------------------------------
112
113         SetViewOn (me:mutable );
114         ---Level: Public
115         ---Purpose: Activates all of the views of a viewer attached
116         --            to a window.
117
118         SetViewOn (me:mutable; View : View from V3d )
119         ---Level: Public
120         ---Purpose: Activates a particular view in the Viewer .
121         --            Must be call if the Window attached to the view
122         --            has been Deiconified .
123                 raises BadValue from V3d;
124         --        If the view is not mapped on the window.
125
126         SetViewOff (me:mutable);
127         ---Level: Public
128         ---Purpose: Deactivates all the views of a Viewer
129         --            attached to a window.
130
131         SetViewOff (me:mutable; View : View from V3d)
132         ---Level: Public
133         ---Purpose: Deactivates a particular view in the Viewer.
134         --            Must be call if the Window attached to the view
135         --            has been Iconified .
136                 raises BadValue from V3d;
137         --        If the view is not mapped on the window.
138
139         Update (me:mutable ) is static;
140         ---Level: Public
141         ---Purpose: Deprecated, Redraw() should be used instead.
142
143         UpdateLights (me: mutable);
144         ---Level: Public
145         ---Purpose: Updates the lights of all the views of a viewer.
146
147         Redraw ( me );
148         ---Level: Public
149         ---Purpose: Redraws all the views of the Viewer even if no
150         --            modification has taken place. Must be called if
151         --            all the views of the Viewer are exposed, as for
152         --           example in a global DeIconification.
153
154         Remove (me:mutable);
155         ---Level: Public
156         ---Purpose: Suppresses the Viewer.
157
158         Erase ( me );
159         ---Level: Public
160         ---Purpose: Erase all Objects in All the views.
161
162         UnHighlight ( me );
163         ---Level: Public
164         ---Purpose: UnHighlight all Objects in All the views.
165
166         SetDefaultBackgroundColor (me:mutable; Type : TypeOfColor; V1, V2, V3 : Parameter );
167         ---Level: Public
168         ---Purpose: Defines the default base colour of views attached
169         --            to the Viewer by supplying the type of colour
170         --            definition and the three component values..
171
172         SetDefaultBackgroundColor (me:mutable; Name : NameOfColor );
173         ---Level: Public
174         ---Purpose: Defines the default background colour of views
175         --            attached to the viewer by supplying the name of the
176         --            colour under the form Quantity_NOC_xxxx .
177
178         SetDefaultBackgroundColor (me:mutable; Color : Color from Quantity);
179         ---Level: Public
180         ---Purpose: Defines the default background colour of views
181         --            attached to the viewer by supplying the color object
182
183         SetDefaultBgGradientColors ( me:mutable;
184                                      Name1 : NameOfColor;
185                                      Name2 : NameOfColor;
186                                      FillStyle : GradientFillMethod from Aspect = Aspect_GFM_HOR  );
187         ---Level: Public
188         ---Purpose: Defines the default gradient background colours of view
189         --            attached to the viewer by supplying the name of the
190         --            colours under the form Quantity_NOC_xxxx .
191
192         SetDefaultBgGradientColors ( me : mutable ;
193                                      Color1 : Color from Quantity;
194                                      Color2 : Color from Quantity;
195                                      FillStyle : GradientFillMethod from Aspect = Aspect_GFM_HOR );
196         ---Level: Public
197         ---Purpose: Defines the default gradient background colours of views
198         --            attached to the viewer by supplying the colour objects
199
200         SetDefaultViewSize (me:mutable; Size : Length )
201         ---Level: Public
202         ---Purpose: Gives a default size for the creation of views of
203         --            the viewer.
204                 raises BadValue from V3d;
205         --        If the size of the view is <= 0
206
207         SetDefaultViewProj (me:mutable; Orientation : TypeOfOrientation );
208         ---Level: Public
209         ---Purpose: Gives the default projection for creating views
210         --            in the viewer.
211
212         SetDefaultVisualization(me:mutable; Type : TypeOfVisualization from V3d);
213         ---Level: Public
214         ---Purpose: Gives the default visualisation mode..
215
216
217         SetZBufferManagment(me: mutable; Automatic: Boolean from Standard);
218         ---Level: Public
219         ---Purpose: defines the strategy concerning the ZBuffer activity.
220         --          If Automatic is true, ZBuffer will be activated or
221         --          deactivated depending on the fact that faces exist or
222         --          not in the Viewer. This will optimize the response time
223         --          in the case where only wireframe objects are displayed.
224         --          If Automatic is False, ZBuffer will be activated or
225         --          deactivated depending on the choice of SetVisualization
226         --          in each View.
227         --          Note that by default, the ZBufferManagment is not automatic.
228
229         ZBufferManagment(me) returns Boolean from Standard;
230         ---Level: Public
231         ---Purpose: returns the ZBuffer stategy choice.
232
233         SetDefaultShadingModel(me:mutable; Type : TypeOfShadingModel from V3d);
234         ---Level: Public
235         ---Purpose: Gives the default type of SHADING.
236
237         SetDefaultSurfaceDetail(me:mutable; Type : TypeOfSurfaceDetail from V3d);
238         ---Level: Public
239         ---Purpose: Gives the default type of texture mapping.
240
241         SetDefaultAngle (me:mutable; Angle : PlaneAngle from Quantity);
242         ---Level: Public
243
244         SetUpdateMode ( me: mutable ; Mode : TypeOfUpdate from V3d );
245         ---Level: Public
246         ---Purpose: Defines the mode of regenerating the views making
247         --            up the viewer. This can be immediate <ASAP> or
248         --            deferred <WAIT>. In this latter case, the views are
249         --            updated when the method Update(me) is called.
250
251         SetDefaultTypeOfView(me:mutable; Type : TypeOfView from V3d);
252         ---Level: Public
253
254
255         SetPrivilegedPlane(me: mutable; aPlane: Ax3 from gp);
256         ---Level: Public
257
258         PrivilegedPlane(me) returns Ax3 from gp;
259         ---Level: Public
260
261         DisplayPrivilegedPlane(me: mutable; OnOff: Boolean from Standard; aSize: Length from Quantity = 1);
262         ---Level: Public
263
264         SetLightOn(me:mutable; MyLight : Light from V3d )
265         ---Level: Public
266         ---Purpose: Activates MyLight in the viewer.
267                 raises BadValue from V3d;
268         --        If No More Light can be activated in MyViewer .
269
270         SetLightOn(me:mutable)
271         ---Level: Public
272         ---Purpose: Activates all the lights defined in this viewer.
273                 raises BadValue from V3d;
274         --        If No More Light can be activated in MyViewer .
275
276         SetLightOff(me:mutable; MyLight : Light  from V3d );
277         ---Level: Public
278         ---Purpose: Desactivate MyLight in this viewer.
279
280         SetLightOff(me:mutable);
281         ---Level: Public
282         ---Purpose: Deactivate all the Lights defined in this viewer.
283
284         DelLight(me:mutable; MyLight : Light from V3d);
285         ---Level: Internal
286         ---Purpose: Delete Light in Sequence Of Lights.
287
288         SetCurrentSelectedLight (me : mutable; TheLight : Light from V3d);
289         ---Level: Advanced
290         ---Purpose: Defines the selected light.
291
292             ClearCurrentSelectedLight (me : mutable);
293         ---Level: Advanced
294         ---Purpose: Defines the selected light at NULL.
295
296         -----------------------------------------
297         ---Category: Inquire methods
298         -----------------------------------------
299
300         DefaultBackgroundColor ( me ; Type : TypeOfColor ; V1,V2,V3 : out Parameter);
301         ---Level:  Public
302         ---Purpose: Returns the default background colour depending of the type.
303         DefaultBackgroundColor ( me ) returns Color from Quantity;
304         ---Level:  Public
305         ---Purpose: Returns the default background colour object.
306
307         DefaultBgGradientColors( me;
308                                  Color1 : out Color from Quantity;
309                                  Color2 : out Color from Quantity) ;
310         ---Level: Public
311         ---Purpose: Returns the gradient background colour objects of the view.
312
313         DefaultViewSize ( me) returns Length;
314         ---Level:  Public
315         ---Purpose: Returns the default size of the view.
316
317         DefaultViewProj ( me) returns TypeOfOrientation;
318         ---Level:  Public
319         ---Purpose: Returns the default Projection.
320
321         DefaultVisualization ( me ) returns TypeOfVisualization from V3d;
322         ---Level:  Public
323         ---Purpose: Returns the default type of Visualization.
324
325         DefaultShadingModel ( me ) returns TypeOfShadingModel from V3d;
326         ---Level:  Public
327         ---Purpose: Returns the default type of Shading
328
329         DefaultSurfaceDetail ( me ) returns TypeOfSurfaceDetail from V3d;
330         ---Level:  Public
331         ---Purpose: Returns the default type of texture mapping
332
333         DefaultAngle ( me ) returns PlaneAngle from Quantity;
334         ---Level:  Public
335
336         UpdateMode ( me ) returns TypeOfUpdate from V3d;
337         ---Level:  Public
338         ---Purpose: Returns the regeneration mode of views in the viewer.
339
340         IfMoreViews( me ) returns Boolean;
341         ---Level:   Advanced
342         ---Purpose: Returns True if One View more can be
343         --          activated in this Viewer.
344         --
345
346         ------------------------------
347         ---Category: iteration methods
348         ------------------------------
349
350         InitActiveViews(me: mutable);
351         ---Level:   Advanced
352         ---Purpose: initializes an iteration on the active views.
353
354         MoreActiveViews (me) returns Boolean from Standard;
355         ---Level:   Advanced
356         ---Purpose: returns true if there are more active view(s) to return.
357
358         NextActiveViews (me: mutable);
359         ---Level:   Advanced
360         ---Purpose : Go to the next active view
361         --           (if there is not, ActiveView will raise an exception)
362
363         ActiveView(me) returns mutable View from V3d;
364         ---Level:   Advanced
365
366         LastActiveView(me) returns Boolean from Standard;
367         ---Level:   Advanced
368         ---Purpose: returns true if there is only
369         --          one active view.
370
371         InitDefinedViews(me: mutable);
372         ---Level:   Advanced
373         ---Purpose: initializes an iteration on the Defined views.
374
375
376         MoreDefinedViews (me) returns Boolean from Standard;
377         ---Level:   Advanced
378         ---Purpose: returns true if there are more Defined view(s) to return.
379
380
381         NextDefinedViews (me: mutable);
382         ---Level:   Advanced
383         ---Purpose : Go to the next Defined view
384         --           (if there is not, DefinedView will raise an exception)
385
386         DefinedView(me)        returns View from V3d;
387         ---Level:   Advanced
388
389         InitActiveLights(me: mutable);
390         ---Level:   Advanced
391         ---Purpose: initializes an iteration on the active Lights.
392
393         MoreActiveLights (me) returns Boolean from Standard;
394         ---Level:   Advanced
395         ---Purpose: returns true if there are more active Light(s) to return.
396
397
398         NextActiveLights (me: mutable);
399         ---Level:   Advanced
400         ---Purpose : Go to the next active Light
401         --           (if there is not, ActiveLight will raise an exception)
402
403
404         ActiveLight(me)        returns mutable Light from V3d;
405         ---Level:   Advanced
406
407         InitDefinedLights(me: mutable);
408         ---Level:   Advanced
409         ---Purpose: initializes an iteration on the Defined Lights.
410
411         MoreDefinedLights (me)        returns Boolean from Standard;
412         ---Level:   Advanced
413         ---Purpose: returns true if there are more Defined Light(s) to return.
414
415         NextDefinedLights (me: mutable);
416         ---Level:   Advanced
417         ---Purpose : Go to the next Defined Light
418         --           (if there is not, DefinedLight will raise an exception)
419
420         DefinedLight(me) returns Light from V3d;
421         ---Level:   Advanced
422
423         Viewer (me) returns mutable ViewManager ;
424         ---Level:   Advanced
425         ---Purpose: Returns the viewer associated to Visual3d .
426
427         CurrentSelectedLight (me) returns Light from V3d;
428         ---Level:   Advanced
429         ---Purpose: Returns the Selected Light.
430
431         IsGlobalLight (me; TheLight : Light from V3d) returns Boolean;
432         ---Level:   Advanced
433
434         ComputedMode(me) returns Boolean from Standard;
435         ---Level:   Public
436         ---Purpose: returns true if the computed mode can be used.
437
438         DefaultComputedMode(me) returns Boolean from Standard;
439         ---Level:   Public
440         ---Purpose: returns true if by default the computed mode must be used.
441
442         -----------------------------------------
443         ---Category: grid management
444         -----------------------------------------
445
446         ActivateGrid (me                : mutable;
447                       aGridType                : GridType from Aspect;
448                       aGridDrawMode        : GridDrawMode from Aspect)
449         is static;
450         ---Purpose: Activates the grid in all views of <me>.
451         ---Level : Public
452         ---Category: grid management
453
454         DeactivateGrid (me        : mutable)
455         is static;
456         ---Purpose: Deactivates the grid in all views of <me>.
457         ---Level : Public
458         ---Category: grid management
459
460         SetGridEcho (me : mutable;
461                 showGrid: Boolean from Standard = Standard_True) is static;
462         ---Purpose: Show/Don't show grid echo to the hit point.
463         -- If TRUE,the grid echo will be shown at ConvertToGrid() time.
464         ---Level : Public
465         ---Category: grid management
466
467         SetGridEcho (me : mutable;
468                 aMarker: AspectMarker3d from Graphic3d) is static;
469         ---Purpose: Show grid echo <aMarker> to the hit point.
470         --  Warning: When the grid echo marker is not set,
471         --           a default marker is build with the attributes:
472         --           marker type : Aspect_TOM_STAR
473         --           marker color : Quantity_NOC_GRAY90
474         --           marker size : 3.0
475         ---Level : Public
476         ---Category: grid management
477
478         GridEcho (me) returns Boolean from Standard is static;
479         ---Purpose: Returns TRUE when grid echo must be displayed
480         --           at hit point.
481         ---Level : Public
482         ---Category: grid management
483
484         IsActive (me)
485                 returns Boolean from Standard
486         is static;
487         ---Purpose: Returns Standard_True if a grid is activated in <me>.
488         ---Level : Public
489         ---Category: grid management
490
491         Grid (me)
492         returns mutable Grid from Aspect
493         is static;
494         ---Purpose : Returns the defined grid in <me>.
495         ---Level : Public
496         ---Category: grid management
497
498         GridType (me)
499                 returns GridType from Aspect
500         is static;
501         ---Purpose: Returns the current grid type defined in <me>.
502         ---Level : Public
503         ---Category: grid management
504
505         GridDrawMode (me)
506                 returns GridDrawMode from Aspect
507         is static;
508         ---Purpose: Returns the current grid draw mode defined in <me>.
509         ---Level : Public
510         ---Category: grid management
511
512         RectangularGridValues (me;
513                 XOrigin, YOrigin        : out Length from Quantity;
514                 XStep, YStep                : out Length from Quantity;
515                 RotationAngle                : out PlaneAngle from Quantity)
516         is static;
517         ---Purpose: Returns the definition of the rectangular grid.
518         ---Level : Public
519         ---Category: grid management
520
521         SetRectangularGridValues (me        : mutable;
522                 XOrigin, YOrigin        : Length from Quantity;
523                 XStep, YStep                : Length from Quantity;
524                 RotationAngle                : PlaneAngle from Quantity)
525         is static;
526         ---Purpose: Sets the definition of the rectangular grid.
527         ---            <XOrigin>, <YOrigin> defines the origin of the grid.
528         ---            <XStep> defines the interval between 2 vertical lines.
529         ---            <YStep> defines the interval between 2 horizontal lines.
530         ---            <RotationAngle> defines the rotation angle of the grid.
531         ---Level : Public
532         ---Category: grid management
533
534         CircularGridValues (me;
535                 XOrigin, YOrigin        : out Length from Quantity;
536                 RadiusStep                : out Length from Quantity;
537                 DivisionNumber                : out Integer from Standard;
538                 RotationAngle                : out PlaneAngle from Quantity)
539         is static;
540         ---Purpose: Returns the definition of the circular grid.
541         ---Level : Public
542         ---Category: grid management
543
544         SetCircularGridValues (me        : mutable;
545                 XOrigin, YOrigin        : Length from Quantity;
546                 RadiusStep                : Length from Quantity;
547                 DivisionNumber                : Integer from Standard;
548                 RotationAngle                : PlaneAngle from Quantity)
549         is static;
550         ---Purpose: Sets the definition of the circular grid.
551         ---            <XOrigin>, <YOrigin> defines the origin of the grid.
552         ---            <RadiusStep> defines the interval between 2 circles.
553         ---            <DivisionNumber> defines the section number of one half circle.
554         ---            <RotationAngle> defines the rotation angle of the grid.
555         ---Level : Public
556         ---Category: grid management
557
558         CircularGridGraphicValues (me;
559                 Radius                        : out Length from Quantity;
560                 OffSet                        : out Length from Quantity)
561         is static;
562         ---Purpose: Returns the location and the size of the grid.
563         ---Level : Public
564         ---Category: grid management
565
566         SetCircularGridGraphicValues (me        : mutable;
567                 Radius                        : Length from Quantity;
568                 OffSet                        : Length from Quantity)
569         is static;
570         ---Purpose: Sets the location and the size of the grid.
571         ---            <XSize> defines the width of the grid.
572         ---            <YSize> defines the height of the grid.
573         ---            <OffSet> defines the displacement along the plane normal.
574         ---Level : Public
575         ---Category: grid management
576
577         RectangularGridGraphicValues (me;
578                 XSize, YSize                : out Length from Quantity;
579                 OffSet                        : out Length from Quantity)
580         is static;
581         ---Purpose: Returns the location and the size of the grid.
582         ---Level : Public
583         ---Category: grid management
584
585         SetRectangularGridGraphicValues (me        : mutable;
586                 XSize, YSize                : Length from Quantity;
587                 OffSet                        : Length from Quantity)
588         is static;
589         ---Purpose: Sets the location and the size of the grid.
590         ---            <XSize> defines the width of the grid.
591         ---            <YSize> defines the height of the grid.
592         ---            <OffSet> defines the displacement along the plane normal.
593         ---Level : Public
594         ---Category: grid management
595
596         -----------------------------------------
597         ---Category: Private or Protected methods
598         -----------------------------------------
599
600         GetBackgroundColor ( me )
601                         returns Background from Aspect is private;
602         ---Purpose: Returns the default background colour.
603
604         GetGradientBackground ( me ) returns GradientBackground from Aspect;
605         ---Level: Public
606         ---Purpose: Returns the gradient background of the view.
607
608         AddView( me: mutable; MyView : View from V3d) is private;
609         ---Purpose: Adds View in Sequence Of Views.
610
611         DelView( me: mutable; MyView : View from V3d) is private;
612         ---Purpose: Delete View in Sequence Of Views.
613
614         AddLight( me: mutable; MyLight : Light from V3d) is private;
615         ---Purpose: Adds Light in Sequence Of Lights.
616
617         SetDefaultLights(me: mutable);
618         ---Purpose: defines default lights  -
619         --          positional-light 0.3 0. 0.
620         --          directional-light V3d_XnegYposZpos
621         --          directional-light V3d_XnegYneg
622         --          ambient-light
623
624         IsActive(me; aView: View from V3d)
625         returns Boolean from Standard is private;
626
627         ShowGridEcho(me : mutable;
628                         aView: View from V3d;
629                         aPoint: Vertex from Graphic3d) is private;
630         ---Purpose:
631         -- Display grid echo at requested point in the view.
632
633         AddZLayer ( me : mutable;
634                     theLayerId : in out Integer from Standard )
635            returns Boolean from Standard is static;
636         ---Purpose: Add a new top-level Z layer to all managed views and get
637         -- its ID as <theLayerId> value. The Z layers are controlled entirely
638         -- by viewer, it is not possible to add a layer to a
639         -- particular view. The method returns Standard_False if the layer can
640         -- not be created. The layer mechanism allows to display structures
641         -- in higher layers in overlay of structures in lower layers.
642
643         RemoveZLayer ( me : mutable;
644                        theLayerId : Integer from Standard )
645            returns Boolean from Standard is static;
646         ---Purpose: Remove Z layer with ID <theLayerId>. Method returns
647         -- Standard_False if the layer can not be removed or doesn't exists.
648         -- By default, there are always default bottom-level layer that can't
649         -- be removed.
650
651         GetAllZLayers ( me;
652                         theLayerSeq : out SequenceOfInteger from TColStd )
653            is static;
654         ---Purpose: Return all Z layer ids in sequence ordered by overlay level
655         -- from lowest layer to highest ( foreground ). The first layer ID
656         -- in sequence is the default layer that can't be removed.
657
658         Driver(me) returns mutable GraphicDriver from Graphic3d
659         is static;
660         ---C++: return const &
661
662         NextName(me) returns ExtString from Standard
663         is static;
664
665         Domain(me) returns CString from  Standard
666         is static;
667         
668         IncrCount(me:mutable) is static protected;
669
670 fields
671
672         myNextCount: Integer        from Standard;
673         myDriver:    GraphicDriver  from Graphic3d;
674         myName:      ExtendedString from TCollection;
675         myDomain:    AsciiString    from TCollection;
676
677         MyViewer:               ViewManager from Visual3d ;
678         MyDefinedViews:                ListOfTransient from V3d;
679         MyActiveViews:                ListOfTransient from V3d;
680         MyDefinedLights:        ListOfTransient from V3d;
681         MyActiveLights:          ListOfTransient from V3d;
682         MyBackground:                Background from Aspect ;
683         MyGradientBackground:        GradientBackground from Aspect ;
684         MyViewSize:                Real ;
685         MyViewProj:                TypeOfOrientation from V3d ;
686         MyVisualization:        TypeOfVisualization from V3d ;
687         MyShadingModel:         TypeOfShadingModel from V3d ;
688         MySurfaceDetail:        TypeOfSurfaceDetail from V3d ;
689         MyDefaultAngle:         PlaneAngle from Quantity;
690         MyDefaultTypeOfView:    TypeOfView from V3d;
691         MyCurrentSelectedLight:   Light from V3d;
692         myActiveViewsIterator: ListIteratorOfListOfTransient from TColStd;
693         myDefinedViewsIterator: ListIteratorOfListOfTransient from TColStd;
694         myActiveLightsIterator: ListIteratorOfListOfTransient from TColStd;
695         myDefinedLightsIterator: ListIteratorOfListOfTransient from TColStd;
696         myComputedMode: Boolean from Standard;
697         myDefaultComputedMode: Boolean from Standard;
698         myPrivilegedPlane: Ax3 from gp;
699         myPlaneStructure: Structure from Graphic3d;
700         myDisplayPlane: Boolean from Standard;
701         myDisplayPlaneLength: Length from Quantity;
702
703         myRGrid: RectangularGrid from V3d;
704         myCGrid: CircularGrid from V3d;
705         myGridType: GridType from Aspect;
706
707         myGridEcho: Boolean from Standard;
708         myGridEchoStructure: Structure from Graphic3d;
709         myGridEchoGroup: Group from Graphic3d;
710         myGridEchoAspect : AspectMarker3d from Graphic3d;
711 friends
712
713         class View from V3d,
714         class Light from V3d,
715         SetPlane  from package V3d (aViewer: Viewer from V3d; x1,y1,z1,x2,y2,z2: Length from Quantity)
716 end Viewer;