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