3489ce0afb031e784e2ad97697460484b59e551b
[occt.git] / src / V3d / V3d_View.cdl
1 -- Created on: 1992-01-15
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 under
9 -- the terms of the GNU Lesser General Public License 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 - 24/12/97 -> Suppression GEOMLITE
18 --              CQO - 24/12/97 -> BUC50037
19 --              stt:25-02-98; S3558: ajout IfManageStandardEvent
20 --              stt:08-04-98; suppr IfManageStandardEvent
21 --              CAL - 18/08/98 -> S3892. Ajout grilles 3d.
22 --              BGN - 16-09-98; Points d'entree du Triedre (S3819, Phase 1)
23 --              22-09-98 ; BGN : S3989 (anciennement S3819)
24 --                               TypeOfTriedron* from Aspect(et pas V3d)
25 --              CAL - 21/10/98 -> Speciale. Ajout methode Tumble.
26 --              29-OCT-98 : DCB : Adding ScreenCopy () method.
27 --      GG - 10/11/99 : PRO19603 Adding Redraw( area ) method
28 --      GG - 15/12/99 : GER61351 Adding SetBackgroundColor()
29 --                   and    BackgroundColor() methods
30 --      GG - 24/01/00 : -> Remove internal PixToRef() method, use Convert()
31 --                method instead.
32 --              -> Rename internal RefToPix() to Convert() method.
33 --              -> Add ConvertToGrid() methods,
34 --                 the Compute() internal method become private.
35 --              -> Add SetProjModel() method.
36 --      VKH - 15/11/99 : G004
37 --              -> Add method Dump()
38 --      GG  - IMP210200
39 --              -> Add Transparency() method
40 --      THA  - 17/08/00 Thomas HARTL <t-hartl@muenchen.matra-dtv.fr>
41 --              -> Add Print method (works only under Windows).
42 --      GG  - IMP231100
43 --              -> Add IsActiveLight() & IsActivePlane() methods
44 --      SZV - IMP100701
45 --              -> Add ToPixMap() method
46 --              GG - RIC120302 Add NEW SetWindow method.
47 --              SAV - 22/10/01
48 --                              -> Add EnableDepthTest() & IsDepthTestEnabled().
49 --              VSV - 28/05/02: ZBUFFER mode of Trihedron
50 --              SAV - 23/12/02  -> Added methods to set background image
51 --              NKV - 23/07/07  -> Define custom projection and model view matrixes
52 --              NKV - 08/02/07  -> Add ConvertWithProj() method
53
54 class View from V3d inherits TShared from MMgt
55
56         ---Purpose: Defines the application object VIEW for the
57         --          VIEWER application.
58         --          The methods of this class allow the editing
59         --          and inquiring the parameters linked to the view.
60         --          (Projection,Mapping,Zclipping,DepthCueing,AntiAliasing
61         --           et Conversions) .
62         --          Provides a set of services common to all types of view.
63         --  Warning: The default parameters are defined by the class
64         --          Viewer (Example : SetDefaultViewSize()).
65         --          Certain methods are mouse oriented, and it is
66         --          necessary to know the difference between the start and
67         --          the continuation of this gesture in putting the method
68         --          into operation.
69         --          Example : Shifting the eye-view along the screen axes.
70         --
71         --              View->Move(10.,20.,0.,True)     (Starting motion)
72         --              View->Move(15.,-5.,0.,False)    (Next motion)
73
74 uses
75
76         -- S3892
77         Pnt                     from gp,
78         Dir                     from gp,
79         Ax3                     from gp,
80         LayerMgr                from V3d,
81         ColorScale              from V3d,
82         ColorScale              from Aspect,
83         Array2OfReal            from TColStd,
84         Grid                    from Aspect,
85         Handle                  from Aspect,
86         Structure               from Graphic3d,
87         Group                   from Graphic3d,
88
89         ListOfTransient                   from V3d,
90         ListIteratorOfListOfTransient     from TColStd,
91         TypeOfView                        from V3d,
92         TypeOfAxe                         from V3d,
93         TypeOfOrientation                 from V3d,
94         TypeOfShadingModel                from V3d,
95         TypeOfSurfaceDetail               from V3d,
96         TextureEnv                        from Graphic3d,
97         TypeOfVisualization               from V3d,
98         TypeOfZclipping                   from V3d,
99         TypeOfProjectionModel             from V3d,
100         TypeOfBackfacingModel             from V3d,
101         StereoDumpOptions                 from V3d,
102         Viewer                            from V3d,
103         Light                             from V3d,
104         View                              from Visual3d,
105         ContextView                       from Visual3d,
106         Vector                            from Graphic3d,
107         Vertex                            from Graphic3d,
108         Camera_Handle                     from Graphic3d,
109         Window                            from Aspect,
110         PixMap                            from Image,
111         BufferType                        from Graphic3d,
112         Background                        from Aspect,
113         GradientBackground                from Aspect,
114         TypeOfColor                       from Quantity,
115         NameOfColor                       from Quantity,
116         Color                             from Quantity,
117         Length                            from Quantity,
118         PlaneAngle                        from Quantity,
119         Parameter                         from Quantity,
120         Factor                            from Quantity,
121         Ratio                             from Quantity,
122         Coefficient                       from Quantity,
123         Coordinate                        from V3d,
124         Array2OfReal                      from TColStd,
125         ViewerPointer                     from V3d,
126         TypeOfTriedronEcho                from Aspect,
127         TypeOfTriedronPosition            from Aspect,
128         RenderingContext                  from Aspect,
129         GraphicCallbackProc               from Aspect,
130         FillMethod                        from Aspect,
131         GradientFillMethod                from Aspect,
132         FontAspect                        from Font,
133         AsciiString                       from TCollection,
134         ExtendedString                    from TCollection,
135         PrintAlgo                         from Aspect,
136         ClipPlane_Handle                  from Graphic3d,
137         SequenceOfHClipPlane              from Graphic3d,
138         RenderingMode                     from Graphic3d,
139         RenderingParams                   from Graphic3d,
140         XYZ                               from gp
141 raises
142
143         BadValue from V3d, TypeMismatch from Standard,
144         MultiplyDefined from Standard,UnMapped from V3d
145
146 is
147
148         Create ( VM : Viewer; Type : TypeOfView from V3d = V3d_ORTHOGRAPHIC );
149         ---Purpose: Initializes the view.
150
151         Create (theVM : Viewer; theView : View from V3d);
152         ---Purpose: Initializes the view by copying.
153
154         --------------------------------------------------------
155         ---Category: Methods to modify the Status of the view
156         --------------------------------------------------------
157
158         SetWindow ( me : mutable ; IdWin : Window )
159         ---Purpose: Activates the view in the window specified and Map the
160         --          Window to the screen.
161         raises MultiplyDefined from Standard;
162         ---Level: Public
163         ---Purpose:  Warning! raises MultiplyDefined from Standard
164         --      if the view is already activated in a window.
165         --  Warning: The view is centered and resized to preserve
166         --          the height/width ratio of the window.
167
168         SetWindow ( me            : mutable ;
169                     aWindow       : Window from Aspect;
170                     aContext      : RenderingContext from Aspect;
171                     aDisplayCB    : GraphicCallbackProc from Aspect;
172                     aClientData   : Address from Standard
173           )
174         ---Purpose: Activates the view in the specified Window
175         --      If <aContext> is not NULL the graphic context is used
176         --          to draw something in this view.
177         --      Otherwise an internal graphic context is created.
178         --      If <aDisplayCB> is not NULL then a user display CB is
179         --      call at the end of the OCC graphic traversal and just
180         --      before the swap of buffers. The <aClientData> is pass
181         --      to this call back.
182         raises MultiplyDefined from Standard;
183         ---Level: Public
184         ---Purpose:  Warning! raises MultiplyDefined from Standard
185         --      if the view is already activated in a window.
186         --  Warning: The view is centered and resized to preserve
187         --          the height/width ratio of the window.
188
189         SetMagnify (me: mutable; IdWin            : Window;
190                                  aPreviousView    : View from V3d;
191                                  x1 , y1 , x2 , y2: Integer from Standard)
192         is static;
193
194         Remove ( me );
195         ---Level: Public
196         ---Purpose: Destroys the view.
197
198         Update ( me ) is static;
199         ---Level: Public
200         ---Purpose: Deprecated, Redraw() should be used instead.
201
202         Redraw ( me );
203         ---Level: Public
204         ---Purpose: Redisplays the view even if there has not
205         --          been any modification.
206         --          Must be called if the view is shown.
207         --          (Ex: DeIconification ) .
208
209         RedrawImmediate ( me );
210         ---Level: Public
211         ---Purpose: Updates layer of immediate presentations.
212
213         Invalidate ( me );
214         ---Level: Public
215         ---Purpose: Invalidates view content but does not redraw it.
216
217         Redraw ( me ;x,y,width,height: Integer from Standard);
218         ---Level: Public
219         ---Purpose: Redisplays the view area after esxposure.
220     -- [x,y] define the min xy area position
221     -- [width,height] the size of the area in pixel unit.
222
223         MustBeResized ( me : mutable )
224         ---Level: Public
225         ---Purpose: Must be called when the window supporting the
226         --          view changes size.
227         raises UnMapped from V3d;
228         ---Purpose:      if the view is not mapped on a window.
229         --  Warning: The view is centered and resized to preserve
230         --          the height/width ratio of the window.
231
232         DoMapping ( me : mutable );
233         ---Level: Advanced
234         ---Purpose: Must be called when the window supporting the
235         --          view is mapped or unmapped.
236
237         IsEmpty ( me ) returns Boolean;
238         ---Level: Public
239         ---Purpose: Returns the status of the view regarding
240         --          the displayed structures inside
241         --          Returns True is The View is empty
242
243         UpdateLights (me);
244         ---Level: Public
245         ---Purpose: Updates the lights of the view. The view is redrawn.
246
247         AutoZFit (me : mutable);
248         ---Level: Public
249         ---Purpose: If automatic z-range fitting is turned on, adjusts Z-min and Z-max
250         --          projection volume planes with call to ZFitAll.
251
252         ZFitAll (me : mutable; theScaleFactor : Real from Standard = 1.0);
253         ---Level: Public
254         ---Purpose: Change Z-min and Z-max planes of projection volume to match the
255         --          displayed objects. 
256
257         --------------------------------------------------------
258         ---Category: Methods to modify the Attributes of the view
259         --------------------------------------------------------
260
261         SetBackgroundColor ( me : mutable ;
262                         Type : TypeOfColor; V1, V2, V3 : Parameter );
263         ---Level: Public
264         ---Purpose: Defines the background colour of the view
265         --          by supplying :
266         --          the colour definition type,
267         --          and the three corresponding values.
268
269         SetBackgroundColor ( me : mutable ; Color : Color from Quantity );
270         ---Level: Public
271         ---Purpose: Defines the background colour of the view
272         --          by supplying :
273         --          the colour object.
274
275         SetBackgroundColor ( me : mutable ; Name : NameOfColor );
276         ---Level: Public
277         ---Purpose: Defines the background colour of the view
278         --          by supplying :
279         --          the colour name in the form Quantity_NOC_xxxx .
280
281         SetBgGradientColors ( me : mutable ;
282                               Color1 : Color from Quantity;
283                               Color2 : Color from Quantity;
284                               FillStyle : GradientFillMethod from Aspect = Aspect_GFM_HOR;
285                               update    : Boolean from Standard = Standard_False );
286         ---Level: Public
287         ---Purpose: Defines the gradient background colours of the view
288         --          by supplying :
289         --          two colour objects,
290         --          and fill method (horizontal by default)
291
292         SetBgGradientColors ( me : mutable ;
293                               Color1 : NameOfColor;
294                               Color2 : NameOfColor;
295                               FillStyle : GradientFillMethod from Aspect = Aspect_GFM_HOR;
296                               update    : Boolean from Standard = Standard_False );
297         ---Level: Public
298         ---Purpose: Defines the gradient background colours of the view
299         --          by supplying :
300         --          two colour names in the form Quantity_NOC_xxxx,
301         --          and fill method (horizontal by default)
302
303         SetBgGradientStyle( me : mutable ;
304                             AMethod : GradientFillMethod from Aspect = Aspect_GFM_HOR;
305                             update  : Boolean from Standard = Standard_False);
306         ---Level: Public
307         ---Purpose: Defines the gradient background fill method of the view
308
309         SetBackgroundImage( me : mutable; FileName  : CString from Standard;
310               FillStyle : FillMethod from Aspect = Aspect_FM_CENTERED;
311                   update    : Boolean from Standard = Standard_False );
312         ---Level: Public
313         ---Purpose: Defines the background texture of the view
314         ---         by supplying :
315         ---         texture image file name,
316         ---         and fill method (centered by default)
317
318         SetBgImageStyle( me : mutable; FillStyle : FillMethod from Aspect;
319                                    update    : Boolean from Standard = Standard_False );
320         ---Level: Public
321         ---Purpose: Defines the textured background fill method of the view
322
323         SetAxis ( me : mutable; X,Y,Z : Coordinate ;
324                                 Vx,Vy,Vz : Parameter )
325         ---Level: Public
326         ---Purpose: Definition of an axis from its origin and
327         --          its orientation .
328         --          This will be the current axis for rotations and movements.
329         raises BadValue from V3d;
330         ---Purpose:  Warning! raises BadValue from V3d if the vector normal is NULL. .
331
332         SetShadingModel ( me : mutable; Model : TypeOfShadingModel );
333         ---Level: Public
334         ---Purpose: Defines the shading model for the
335         --          visualisation ZBUFFER mode.
336         --          Various models are available.
337
338         SetSurfaceDetail(me  : mutable; SurfaceDetail : TypeOfSurfaceDetail);
339         ---Level: Public
340         ---Purpose: select the kind of rendering for texture mapping
341         --          no texture mapping by default
342
343         SetTextureEnv(me  : mutable; ATexture  :  TextureEnv  from  Graphic3d);
344         ---Level: Public
345         ---Purpose: set the environment texture to use
346         --          no environment texture by default
347
348         SetVisualization ( me : mutable;
349                                 Mode : TypeOfVisualization from V3d );
350         ---Level: Public
351         ---Purpose: Defines the visualisation mode in the view.
352
353         SetAntialiasingOn ( me : mutable );
354         ---Level: Public
355         ---Purpose: Activates antialiasing in the view.
356
357         SetAntialiasingOff ( me : mutable );
358         ---Level: Public
359         ---Purpose: Desactivates antialiasing in the view.
360
361         SetZClippingDepth ( me : mutable; Depth : Length );
362         ---Level: Public
363         ---Purpose: Defines the depth of the medium clipping plane.
364
365         SetZClippingWidth ( me : mutable; Width : Length )
366         ---Level: Public
367         ---Purpose: Defines the thicknes around the medium clippling plane.   .
368                 raises BadValue from V3d;
369         --      If the thickness is <= 0
370
371         SetZClippingType ( me : mutable; Type : TypeOfZclipping );
372         ---Level: Public
373         ---Purpose: Defines the type of ZClipping.
374
375         SetZCueingDepth ( me : mutable; Depth : Length );
376         ---Level: Public
377         ---Purpose: Defines the depth of the medium plane.
378
379         SetZCueingWidth ( me : mutable; Width : Length )
380         ---Level: Public
381         ---Purpose: Defines the thickness around the medium plane.
382                 raises BadValue from V3d;
383         --      If thickness is <= 0
384
385         SetZCueingOn ( me : mutable );
386         ---Level: Public
387         ---Purpose: Activates ZCueing in the view.
388
389         SetZCueingOff ( me : mutable );
390         ---Level: Public
391         ---Purpose: Desactivates ZCueing in the view.
392
393         SetLightOn( me : mutable ; MyLight : Light from V3d )
394         ---Level: Public
395         ---Purpose: Activates MyLight in the view.
396                 raises BadValue from V3d;
397         --      If No More Light can be activated in MyView .
398
399         SetLightOn( me : mutable )
400         ---Level: Public
401         ---Purpose: Activates all the lights defined in this view.
402                 raises BadValue from V3d;
403         --      If No More Light can be activated in MyView .
404
405         SetLightOff( me : mutable ; MyLight : Light  from V3d );
406         ---Level: Public
407         ---Purpose: Desactivate MyLight in this view.
408
409         SetLightOff( me : mutable );
410         ---Level: Public
411         ---Purpose: Deactivate all the Lights defined in this view.
412
413         IsActiveLight( me ; aLight: Light  from V3d )
414         returns Boolean from Standard;
415         ---Level: Public
416         ---Purpose: Returns TRUE when the light is active in this view.
417
418         SetTransparency( me : mutable ; AnActivity : Boolean = Standard_False);
419         ---Level: Public
420         ---Purpose: Activate/Deactivate the transparency in this view.
421
422         SetImmediateUpdate(me: mutable; theImmediateUpdate: Boolean from Standard)
423         returns Boolean from Standard;
424           ---Purpose: sets the immediate update mode and returns the previous one.
425
426         ---------------------------------------------------
427         --           Triedron methods
428         ---------------------------------------------------
429
430         ZBufferTriedronSetup ( me      : mutable;
431                            XColor  : NameOfColor from Quantity = Quantity_NOC_RED;
432                            YColor  : NameOfColor from Quantity = Quantity_NOC_GREEN;
433                            ZColor  : NameOfColor from Quantity = Quantity_NOC_BLUE1;
434                    SizeRatio : Real from Standard = 0.8;
435                    AxisDiametr : Real from Standard = 0.05;
436                    NbFacettes  : Integer from Standard = 12)
437          is static;
438         ---Level: Advanced
439         ---Purpose: Customization of the ZBUFFER Triedron.
440         ---         XColor,YColor,ZColor - colors of axis
441         ---         SizeRatio - ratio of decreasing of the trihedron size when its phisical
442         ---                     position comes out of the view
443         ---         AxisDiametr - diameter relatively to axis length
444         ---         NbFacettes - number of facettes of cylinders and cones
445
446         TriedronDisplay ( me            : mutable;
447                           APosition     : TypeOfTriedronPosition from Aspect  = Aspect_TOTP_CENTER;
448                           AColor        : NameOfColor from Quantity = Quantity_NOC_WHITE ;
449                           AScale        : Real from Standard  =  0.02;
450                           AMode         : TypeOfVisualization from V3d = V3d_WIREFRAME )
451                 is static;
452         ---Level: Advanced
453         ---Purpose: Display of the Triedron.
454         ---         Initialize position, color and length of Triedron axes.
455         ---         The scale is a percent of the window width.
456         ---Category:
457
458         TriedronErase ( me : mutable )
459                 is static;
460         ---Level: Advanced
461         ---Purpose: Erases the Triedron.
462         ---Category:
463
464         TriedronEcho ( me       : mutable;
465                        AType    : TypeOfTriedronEcho from Aspect  = Aspect_TOTE_NONE )
466                 is static;
467         ---Level: Advanced
468         ---Purpose: Highlights the echo zone of the Triedron.
469         ---Category:
470
471         ---------------------------------
472         ---Category: Graduated trihedron
473         ---------------------------------
474
475         GetGraduatedTrihedron(me;
476                               -- Names of axes --
477                               xname, yname, zname : out ExtendedString from TCollection;
478                               -- Draw names --
479                               xdrawname, ydrawname, zdrawname : out Boolean from Standard;
480                               -- Draw values --
481                               xdrawvalues, ydrawvalues, zdrawvalues : out Boolean from Standard;
482                               -- Draw grid --
483                               drawgrid : out Boolean from Standard;
484                               -- Draw axes --
485                               drawaxes : out Boolean from Standard;
486                               -- Number of splits along axes --
487                               nbx, nby, nbz : out Integer from Standard;
488                               -- Offset for drawing values --
489                               xoffset, yoffset, zoffset : out Integer from Standard;
490                               -- Offset for drawing names of axes --
491                               xaxisoffset, yaxisoffset, zaxisoffset : out Integer from Standard;
492                               -- Draw tickmarks --
493                               xdrawtickmarks, ydrawtickmarks, zdrawtickmarks : out Boolean from Standard;
494                               -- Length of tickmarks --
495                               xtickmarklength, ytickmarklength, ztickmarklength : out Integer from Standard;
496                               -- Grid color --
497                               gridcolor : out Color from Quantity;
498                               -- Colors of axis names --
499                               xnamecolor, ynamecolor, znamecolor : out Color from Quantity;
500                               -- Colors of axis and values --
501                               xcolor, ycolor, zcolor : out Color from Quantity;
502                               -- Name of font for names of axes --
503                               fontOfNames : out AsciiString from TCollection;
504                               -- Style of names of axes --
505                               styleOfNames : out FontAspect from Font;
506                               -- Size of names of axes --
507                               sizeOfNames : out Integer from Standard;
508                               -- Name of font for values --
509                               fontOfValues : out AsciiString from TCollection;
510                               -- Style of values --
511                               styleOfValues : out FontAspect from Font;
512                               -- Size of values --
513                               sizeOfValues : out Integer from Standard)
514         ---Purpose: Returns data of a graduated trihedron.
515         is static;
516
517         GraduatedTrihedronDisplay(me : mutable;
518                                   -- Names of axes --
519                                   xname : ExtendedString from TCollection = "X";
520                                   yname : ExtendedString from TCollection = "Y";
521                                   zname : ExtendedString from TCollection = "Z";
522                                   -- Draw names --
523                                   xdrawname : Boolean from Standard = Standard_True;
524                                   ydrawname : Boolean from Standard = Standard_True;
525                                   zdrawname : Boolean from Standard = Standard_True;
526                                   -- Draw values --
527                                   xdrawvalues : Boolean from Standard = Standard_True;
528                                   ydrawvalues : Boolean from Standard = Standard_True;
529                                   zdrawvalues : Boolean from Standard = Standard_True;
530                                   -- Draw grid --
531                                   drawgrid : Boolean from Standard = Standard_True;
532                                   -- Draw axes --
533                                   drawaxes : Boolean from Standard = Standard_True;
534                                   -- Number of splits along axes --
535                                   nbx : Integer from Standard = 3;
536                                   nby : Integer from Standard = 3;
537                                   nbz : Integer from Standard = 3;
538                                   -- Offset for drawing values --
539                                   xoffset : Integer from Standard = 10;
540                                   yoffset : Integer from Standard = 10;
541                                   zoffset : Integer from Standard = 10;
542                                   -- Offset for drawing names of axes --
543                                   xaxisoffset : Integer from Standard = 30;
544                                   yaxisoffset : Integer from Standard = 30;
545                                   zaxisoffset : Integer from Standard = 30;
546                                   -- Draw tickmarks --
547                                   xdrawtickmarks : Boolean from Standard = Standard_True;
548                                   ydrawtickmarks : Boolean from Standard = Standard_True;
549                                   zdrawtickmarks : Boolean from Standard = Standard_True;
550                                   -- Length of tickmarks --
551                                   xtickmarklength : Integer from Standard = 10;
552                                   ytickmarklength : Integer from Standard = 10;
553                                   ztickmarklength : Integer from Standard = 10;
554                                   -- Grid color --
555                                   gridcolor : Color from Quantity = Quantity_NOC_WHITE;
556                                   -- X name color --
557                                   xnamecolor : Color from Quantity = Quantity_NOC_RED;
558                                   -- Y name color --
559                                   ynamecolor : Color from Quantity = Quantity_NOC_GREEN;
560                                   -- Z name color --
561                                   znamecolor : Color from Quantity = Quantity_NOC_BLUE1;
562                                   -- X color of axis and values --
563                                   xcolor : Color from Quantity = Quantity_NOC_RED;
564                                   -- Y color of axis and values --
565                                   ycolor : Color from Quantity = Quantity_NOC_GREEN;
566                                   -- Z color of axis and values --
567                                   zcolor : Color from Quantity = Quantity_NOC_BLUE1;
568                                   -- Name of font for names of axes --
569                                   fontOfNames : AsciiString from TCollection = "Arial";
570                                   -- Style of names of axes --
571                                   styleOfNames : FontAspect from Font = Font_FA_Bold;
572                                   -- Size of names of axes --
573                                   sizeOfNames : Integer from Standard = 12;
574                                   -- Name of font for values --
575                                   fontOfValues : AsciiString from TCollection = "Arial";
576                                   -- Style of values --
577                                   styleOfValues : FontAspect from Font = Font_FA_Regular;
578                                   -- Size of values --
579                                   sizeOfValues : Integer from Standard = 12)
580         ---Purpose: Displays a graduated trihedron.
581         is static;
582
583         GraduatedTrihedronErase(me : mutable)
584         ---Purpose: Erases a graduated trihedron from the view.
585         is static;
586
587         ---------------------------------------------------
588         --           Color Scale methods
589         ---------------------------------------------------
590
591         SetLayerMgr(me : mutable; aMgr : LayerMgr from V3d);
592
593         ColorScaleDisplay(me : mutable);
594
595         ColorScaleErase(me : mutable);
596
597         ColorScaleIsDisplayed(me)
598         returns Boolean from Standard;
599
600         ColorScale(me)
601         returns ColorScale from Aspect;
602
603         --------------------------------------------------------
604         ---Category: Methods to modify the Projection of the view
605         --------------------------------------------------------
606
607         SetFront(me: mutable);
608         ---Level: Public
609         ---Purpose: modify the Projection of the view perpendicularly to
610         --          the privileged plane of the viewer.
611
612         Rotate ( me : mutable ; Ax,Ay,Az : PlaneAngle ;
613                                 Start    : Boolean = Standard_True )
614         ---Level: Public
615         ---Purpose: Rotates the eye about the coordinate system of
616         --          reference of the screen
617         --          for which the origin is the view point of the projection,
618         --          with a relative angular value in RADIANS with respect to
619         --          the initial position expressed by Start = Standard_True
620         raises BadValue from V3d;
621         ---Purpose:  Warning! raises BadValue from V3d
622         --      If the eye, the view point, or the high point are
623         --          aligned or confused.
624
625         Rotate ( me : mutable ; Ax,Ay,Az : PlaneAngle ;
626                                 X,Y,Z    : Coordinate ;
627                                 Start    : Boolean = Standard_True )
628         ---Level: Public
629         ---Purpose: Rotates the eye about the coordinate system of
630         --          reference of the screen
631         --          for which the origin is Gravity point {X,Y,Z},
632         --          with a relative angular value in RADIANS with respect to
633         --          the initial position expressed by Start = Standard_True
634                 raises BadValue from V3d;
635         ---Purpose:      If the eye, the view point, or the high point are
636         --          aligned or confused.
637
638         Rotate ( me : mutable ; Axe      : TypeOfAxe ; Angle : PlaneAngle ;
639                                 X,Y,Z    : Coordinate ;
640                                 Start    : Boolean = Standard_True );
641         ---Level: Public
642         ---Purpose: Rotates the eye about one of the coordinate axes of
643         --          of the view for which the origin is the Gravity point{X,Y,Z}
644         --          with an relative angular value in RADIANS with
645         --          respect to the initial position expressed by
646         --          Start = Standard_True
647
648         Rotate ( me : mutable ; Axe    : TypeOfAxe ; Angle : PlaneAngle ;
649                                 Start : Boolean = Standard_True ) ;
650         ---Level: Public
651         ---Purpose: Rotates the eye about one of the coordinate axes of
652         --          of the view for which the origin is the view point of the
653         --          projection with an relative angular value in RADIANS with
654         --          respect to the initial position expressed by
655         --          Start = Standard_True
656
657         Rotate ( me : mutable ; Angle : PlaneAngle ;
658                                 Start : Boolean = Standard_True );
659         ---Level: Public
660         ---Purpose: Rotates the eye around the current axis a relative
661         --          angular value in RADIANS with respect to the initial
662         --          position expressed by Start = Standard_True
663
664         Move ( me : mutable ; Dx,Dy,Dz : Length ;
665                               Start    : Boolean = Standard_True )
666         ---Level: Public
667         ---Purpose: Movement of the eye parallel to the coordinate system
668         --          of reference of the screen a distance relative to the
669         --          initial position expressed by Start = Standard_True.
670                 raises BadValue from V3d;
671         --      If the eye, the view point, or the high point are
672         --      aligned or confused.
673
674         Move ( me : mutable ; Axe   : TypeOfAxe ; Length : Length ;
675                               Start : Boolean = Standard_True )
676         ---Level: Public
677         ---Purpose: Movement of the eye parallel to one of the axes of the
678         --          coordinate system of reference of the view a distance
679         --          relative to the initial position expressed by
680         --          Start = Standard_True.
681                 raises BadValue from V3d;
682         --      If the eye, view point, or high point are aligned or confused.
683
684         Move ( me : mutable ; Length : Length ;
685                               Start  : Boolean = Standard_True )
686         ---Level: Public
687         ---Purpose: Movement of the eye parllel to the current axis
688         --          a distance relative to the initial position
689         --          expressed by Start = Standard_True
690                 raises BadValue from V3d;
691         --      If the eye, view point, or high point are aligned or confused.
692
693         Translate ( me : mutable ; Dx,Dy,Dz : Length ;
694                                    Start    : Boolean = Standard_True )
695         ---Level: Public
696         ---Purpose: Movement of the ye and the view point parallel to the
697         --          frame of reference of the screen a distance relative
698         --          to the initial position expressed by
699         --          Start = Standard_True
700                 raises BadValue from V3d;
701         --      If the eye, view point, or high point are aligned or confused.
702
703         Translate ( me : mutable ; Axe   : TypeOfAxe ; Length : Length ;
704                                    Start : Boolean = Standard_True );
705         ---Level: Public
706         ---Purpose: Movement of the eye and the view point parallel to one
707         --          of the axes of the fame of reference of the view a
708         --          distance relative to the initial position
709         --          expressed by Start = Standard_True
710
711         Translate ( me : mutable ; Length : Length ;
712                                    Start  : Boolean = Standard_True );
713         ---Level: Public
714         ---Purpose: Movement of the eye and view point parallel to
715         --          the current axis a distance relative to the initial
716         --          position expressed by Start = Standard_True
717
718         Place (me            : mutable;
719                theXp         : Integer from Standard;
720                theYp         : Integer from Standard;
721                theZoomFactor : Factor from Quantity = 1)
722         ---Level: Public
723         ---Purpose: places the point of the view corresponding
724         --          at the pixel position x,y at the center of the window
725         --          and updates the view.
726         is static;
727
728         Turn ( me : mutable ; Ax,Ay,Az : PlaneAngle ;
729                               Start    : Boolean = Standard_True )
730         ---Level: Public
731         ---Purpose: Rotation of the view point around the frame of reference
732         --          of the screen for which the origin is the eye of the
733         --          projection with a relative angular value in RADIANS
734         --          with respect to the initial position expressed by
735         --          Start = Standard_True
736                 raises BadValue from V3d;
737         --      If the eye, view point, or high point are aligned or confused.
738
739         Turn ( me : mutable ; Axe : TypeOfAxe ; Angle : PlaneAngle ;
740                               Start : Boolean = Standard_True )
741        ;
742         ---Level: Public
743         ---Purpose: Rotation of the view point around one of the axes of the
744         --          frame of reference of the view for which the origin is
745         --          the eye of the projection with an angular value in
746         --          RADIANS relative to the initial position expressed by
747         --          Start = Standard_True
748
749         Turn ( me : mutable ; Angle : PlaneAngle ;
750                               Start : Boolean = Standard_True );
751         ---Level: Public
752         ---Purpose: Rotation of the view point around the current axis an
753         --          angular value in RADIANS relative to the initial
754         --          position expressed by Start = Standard_True
755
756         SetTwist ( me : mutable ; Angle : PlaneAngle )
757         ---Level: Public
758         ---Purpose: Defines the angular position of the high point of
759         --          the reference frame of the view with respect to the
760         --          Y screen axis with an absolute angular value in
761         --          RADIANS.
762                 raises BadValue from V3d;
763         --      If the eye, view point, or high point are aligned or confused.
764
765         SetEye( me : mutable ; X,Y,Z : Coordinate )
766         ---Level: Public
767         ---Purpose: Defines the position of the eye..
768                 raises BadValue from V3d ;
769         --      If the eye, view point, or high point are aligned or confused.
770
771         SetDepth( me : mutable ; Depth : Length )
772         ---Level: Public
773         ---Purpose: Defines the Depth of the eye from the view point
774         --          without update the projection .
775                 raises BadValue from V3d ;
776         --      If the Depth is <= 0.
777
778         SetProj( me : mutable ; Vx,Vy,Vz : Parameter )
779         ---Level: Public
780         ---Purpose: Defines the orientation of the projection.
781                 raises BadValue from V3d ;
782         --      If the eye, view point, or high point are aligned or confused.
783
784         SetProj( me : mutable ; Orientation : TypeOfOrientation )
785         ---Level: Public
786         ---Purpose: Defines the orientation of the projection .
787                 raises BadValue from V3d ;
788         --      If the eye, view point, or high point are aligned or confused.
789         --          Updates the view
790
791         SetAt( me : mutable ; X,Y,Z : Coordinate )
792         ---Level: Public
793         ---Purpose: Defines the position of the view point.
794                 raises BadValue from V3d ;
795         --      If the eye, view point, or high point are aligned or confused.
796
797         SetUp( me : mutable ; Vx,Vy,Vz : Parameter )
798         ---Level: Public
799         ---Purpose: Defines the orientation of the high point.
800                 raises BadValue from V3d ;
801         --      If the eye, view point, or high point are aligned or confused.
802
803         SetUp( me : mutable ; Orientation : TypeOfOrientation )
804         ---Level: Public
805         ---Purpose: Defines the orientation(SO) of the high point.
806                 raises BadValue from V3d ;
807         --      If the eye, view point, or high point are aligned or confused.
808
809         SetViewOrientationDefault( me : mutable );
810         ---Level: Public
811         ---Purpose: Saves the current state of the orientation of the view
812         --          which will be the return state at ResetViewOrientation.
813
814         ResetViewOrientation ( me : mutable );
815         ---Level: Public
816         ---Purpose: Resets the orientation of the view.
817         --          Updates the view
818
819         --------------------------------------------------------
820         ---Category: Methods to modify the Mapping of the view
821         --------------------------------------------------------
822
823         Panning (me            : mutable;
824                  theDXv        : Real from Standard;
825                  theDYv        : Real from Standard;
826                  theZoomFactor : Factor from Quantity = 1;
827                  theToStart    : Boolean = Standard_True);
828         ---Level: Public
829         ---Purpose: Translates the center of the view along "x" and "y" axes of
830         -- view projection. Can be used to perform interactive panning operation.
831         -- In that case the DXv, DXy parameters specify panning relative to the
832         -- point where the operation is started.
833         -- @param theDXv [in] the relative panning on "x" axis of view projection, in view space coordinates.
834         -- @param theDYv [in] the relative panning on "y" axis of view projection, in view space coordinates.
835         -- @param theZoomFactor [in] the zooming factor.
836         -- @param theToStart [in] pass TRUE when starting panning to remember view
837         -- state prior to panning for relative arguments. If panning is started,
838         -- passing {0, 0} for {theDXv, theDYv} will return view to initial state.
839         -- Performs update of view.
840
841         SetCenter (me : mutable; theXp, theYp : Integer from Standard)
842         ---Level: Public
843         ---Purpose: Relocates center of screen to the point, determined by
844         -- {Xp, Yp} pixel coordinates relative to the bottom-left corner of
845         -- screen. To calculate pixel coordinates for any point from world
846         -- coordinate space, it can be projected using "Project".
847         -- @param theXp [in] the x coordinate.
848         -- @param theYp [in] the y coordinate.
849         raises BadValue from V3d;
850         -- If one of the dimensions of the projection is NULL.
851
852         SetSize ( me : mutable; theSize : Length )
853         ---Level: Public
854         ---Purpose: Defines the view projection size in its maximum dimension,
855         --          keeping the inital height/width ratio unchanged.
856                 raises BadValue from V3d;
857         --      If <theSize> is <= 0.0
858
859         SetZSize ( me : mutable ; Size : Length )
860         ---Level: Public
861         ---Purpose: Defines the Depth size of the view
862         --          Front Plane will be set to Size/2.
863         --          Back  Plane will be set to -Size/2.
864         --          Any Object located Above the Front Plane or
865         --                             behind the Back Plane will be Clipped .
866         --          NOTE than the XY Size of the View is NOT modified .
867                 raises BadValue from V3d ;
868         --      If the size of the view is <= 0
869
870         SetZoom ( me : mutable ; Coef : Factor ; Start : Boolean = Standard_True )
871         ---Level: Public
872         ---Purpose: Zooms the view by a factor relative to the initial
873         --          value expressed by Start = Standard_True
874         --          Updates the view.
875                 raises BadValue from V3d ;
876         --      If the zoom coefficient is <= 0
877
878         SetScale ( me : mutable ; Coef : Factor )
879         ---Level: Public
880         ---Purpose: Zooms the view by a factor relative to the value
881         --          initialised by SetViewMappingDefault().
882         --          Updates the view.
883                 raises BadValue from V3d ;
884         --      If the zoom coefficient is <= 0
885
886     SetAxialScale ( me : mutable ; Sx, Sy, Sz : Real from Standard )
887         ---Level: Public
888         ---Purpose: Sets  anisotropic (axial)  scale  factors  <Sx>, <Sy>, <Sz>  for  view <me>.
889     -- Anisotropic  scaling  operation  is  performed  through  multiplying
890     -- the current view  orientation  matrix  by  a  scaling  matrix:
891     -- || Sx  0   0   0 ||
892     -- || 0   Sy  0   0 ||
893     -- || 0   0   Sz  0 ||
894     -- || 0   0   0   1 ||
895         -- Updates the view.
896                 raises BadValue from V3d ;
897         --      If the one of factors <= 0
898
899         FitAll (me : mutable;
900                 theMargin : Coefficient = 0.01;
901                 theToUpdate : Boolean from Standard = Standard_True);
902         ---Level: Public
903         ---Purpose: Adjust view parameters to fit the displayed scene, respecting height / width ratio.
904         --          The Z clipping range (depth range) is fitted if AutoZFit flag is TRUE.
905         --          Throws program error exception if margin coefficient is < 0 or >= 1.
906         --          Updates the view.
907         --          @param theMargin [in] the margin coefficient for view borders.
908         --          @param theToUpdate [in] flag to perform view update.
909
910         DepthFitAll( me : mutable ;   Aspect : Coefficient = 0.01;
911                                       Margin : Coefficient = 0.01 );
912         ---Level: Public
913         ---Purpose: Adjusts the viewing volume so as not to clip the displayed objects by front and back
914         --          and back clipping planes. Also sets depth value automatically depending on the
915         --          calculated Z size and Aspect parameter.
916         --          NOTE than the original XY size of the view is NOT modified .
917
918         FitAll (me : mutable;
919                 theMinXv : Real from Standard;
920                 theMinYv : Real from Standard;
921                 theMaxXv : Real from Standard;
922                 theMaxYv : Real from Standard)
923         ---Level: Public
924         ---Purpose: Centers the defined projection window so that it occupies
925         --          the maximum space while respecting the initial
926         --          height/width ratio.
927         --          NOTE than the original Z size of the view is NOT modified .
928                 raises BadValue from V3d;
929         --              If the defined projection window has zero size.
930
931         WindowFit (me : mutable; theMinXp, theMinYp, theMaxXp, theMaxYp : Integer)
932         ---Level: Public
933         ---Purpose: Centers the defined PIXEL window so that it occupies
934         -- the maximum space while respecting the initial height/width ratio.
935         -- NOTE than the original Z size of the view is NOT modified.
936         -- @param theMinXp [in] pixel coordinates of minimal corner on x screen axis.
937         -- @param theMinYp [in] pixel coordinates of minimal corner on y screen axis.
938         -- @param theMaxXp [in] pixel coordinates of maximal corner on x screen axis.
939         -- @param theMaxYp [in] pixel coordinates of maximal corner on y screen axis.
940         is static;
941         SetViewMappingDefault( me : mutable );
942         ---Level: Public
943         ---Purpose: Saves the current view mapping. This will be the
944         --          state returned from ResetViewmapping.
945
946         ResetViewMapping ( me : mutable );
947         ---Level: Public
948         ---Purpose: Resets the centering of the view.
949         --          Updates the view
950
951         Reset ( me : mutable; update : Boolean from Standard = Standard_True );
952         ---Level: Public
953         ---Purpose: Resets the centering and the orientation of the view
954         --          Updates the view
955         ---------------------------------------------------
956         ---Category: Inquire methods
957         ---------------------------------------------------
958
959         Convert( me ; Vp : Integer ) returns Length
960         ---Level: Public
961         ---Purpose : Converts the PIXEL value
962         --           to a value in the projection plane.
963         raises UnMapped from V3d;
964         --      If the view is not mapped on the window.
965
966         Convert( me ; Xp,Yp : Integer ; Xv,Yv : out Coordinate )
967         ---Level: Public
968         ---Purpose : Converts the point PIXEL into a point projected
969         --           in the reference frame of the projection plane.
970         raises UnMapped from V3d;
971         --      If the view is not mapped on the window.
972
973         Convert( me ; Vv : Length ) returns Integer
974         ---Level: Public
975         ---Purpose : Converts tha value of the projection plane into
976         --           a PIXEL value.
977         raises UnMapped from V3d;
978         --      If the view is not mapped on the window.
979
980         Convert( me ; Xv,Yv : Coordinate ; Xp,Yp : out Integer )
981         ---Level: Public
982         ---Purpose : Converts the point defined in the reference frame
983         --           of the projection plane into a point PIXEL.
984         raises UnMapped from V3d;
985         --      If the view is not mapped on the window.
986
987         Convert( me ; Xp,Yp : Integer ; X,Y,Z : out Coordinate)
988         ---Level: Public
989         ---Purpose : Converts the projected point into a point
990         --           in the reference frame of the view corresponding
991         --           to the intersection with the projection plane
992         --           of the eye/view point vector.
993         raises UnMapped from V3d;
994         --      If the view is not mapped on the window.
995
996         ConvertWithProj( me ; Xp,Yp : Integer ; X,Y,Z : out Coordinate ; Vx,Vy,Vz : out Parameter)
997         ---Level: Public
998         ---Purpose : Converts the projected point into a point
999         --           in the reference frame of the view corresponding
1000         --           to the intersection with the projection plane
1001         --           of the eye/view point vector and returns the
1002         --           projection ray for further computations.
1003         raises UnMapped from V3d;
1004         --      If the view is not mapped on the window.
1005
1006         ConvertToGrid( me ; Xp,Yp : Integer ; Xg,Yg,Zg : out Coordinate)
1007         ---Level: Public
1008         ---Purpose : Converts the projected point into the nearest grid point
1009         --           in the reference frame of the view corresponding
1010         --           to the intersection with the projection plane
1011         --           of the eye/view point vector and display the grid marker.
1012     --  Warning: When the grid is not active the result is identical to the above Convert() method.
1013     -- How to use:
1014     -- 1) Enable the grid echo display
1015     --    myViewer->SetGridEcho(Standard_True);
1016     -- 2) When application receive a move event:
1017     --   2.1) Check if any object is detected
1018     --     if( myInteractiveContext->MoveTo(x,y) == AIS_SOD_Nothing ) {
1019     --   2.2) Check if the grid is active
1020         --     if( myViewer->Grid()->IsActive() ) {
1021     --   2.3) Display the grid echo and gets the grid point
1022         --       myView->ConvertToGrid(x,y,X,Y,Z);
1023         --       myView->Viewer()->ShowGridEcho (myView, Graphic3d_Vertex (X,Y,Z));
1024         --       myView->RedrawImmediate();
1025     --   2.4) Else this is the standard case
1026         --     } else myView->Convert(x,y,X,Y,Z);
1027         raises UnMapped from V3d;
1028         --      If the view is not mapped on the window.
1029
1030         ConvertToGrid( me ; X,Y,Z : Coordinate ; Xg,Yg,Zg : out Coordinate)
1031         ---Level: Public
1032         ---Purpose : Converts the point into the nearest grid point
1033         --           and display the grid marker.
1034     ---Warning: When the grid is not active the result is identical
1035     --     to the previous point.
1036         raises UnMapped from V3d;
1037         --      If the view is not mapped on the window.
1038
1039         Convert( me ; X,Y,Z : Coordinate; Xp,Yp : out Integer) ;
1040         ---Level: Public
1041         ---Purpose : Projects the point defined in the reference frame of
1042         --           the view into the projected point in the associated window.
1043
1044 --        RefToPix( me ; X,Y,Z : Coordinate; Xp,Yp : out Integer) ;
1045 --        ---Purpose : Projects the point defined in the reference frame of
1046 --        --           the view into the projected point in the associated window.
1047 --  Obsolete : Use Convert(X,Y,Z,Xp,Yp);
1048
1049 --        PixToRef( me ; Xp,Yp : Integer; X,Y,Z : out Coordinate) ;
1050 --        ---Purpose : Converts the projected point in the associated window of
1051 --        --           the view into the point defined in the reference frame.
1052 --  Obsolete : Use Convert(Xp,Yp,X,Y,Z);
1053
1054         Project( me ; X,Y,Z : Coordinate; Xp,Yp : out Coordinate) ;
1055         ---Level: Public
1056         ---Purpose : Converts the point defined in the user space of
1057         --           the view to the projected view plane point at z 0.
1058
1059         BackgroundColor( me; Type : TypeOfColor ; V1, V2, V3 : out Parameter) ;
1060         ---Level: Public
1061         ---Purpose: Returns the Background color values of the view
1062         --          depending of the color Type.
1063
1064         BackgroundColor( me ) returns Color from Quantity;
1065         ---Level: Public
1066         ---Purpose: Returns the Background color object of the view.
1067
1068         GradientBackgroundColors( me;
1069                                   Color1 : out Color from Quantity;
1070                                   Color2 : out Color from Quantity) ;
1071         ---Level: Public
1072         ---Purpose: Returns the gradient background colour objects of the view.
1073
1074         GradientBackground ( me ) returns GradientBackground from Aspect;
1075         ---Level: Public
1076         ---Purpose: Returns the gradient background of the view.
1077
1078         Scale ( me ) returns Factor ;
1079         ---Level: Public
1080         ---Purpose: Returns the current value of the zoom expressed with
1081         --          respect to SetViewMappingDefault().
1082
1083     AxialScale ( me ; Sx, Sy, Sz : out Real from Standard ) ;
1084         ---Level: Public
1085         ---Purpose: Returns the current values of the anisotropic (axial) scale factors.
1086
1087         Size ( me; Width, Height : out Length );
1088         ---Level: Public
1089         ---Purpose: Returns the height and width of the view.
1090
1091         ZSize ( me ) returns Real ;
1092         ---Level: Public
1093         ---Purpose: Returns the Depth of the view .
1094
1095         Eye( me ; X,Y,Z : out Coordinate );
1096         ---Level: Public
1097         ---Purpose: Returns the position of the eye.
1098
1099         FocalReferencePoint (me ; X,Y,Z : out Coordinate );
1100         ---Level: Public
1101         ---Purpose: Returns the position of point which emanating the
1102         --          projections.
1103
1104         ProjReferenceAxe( me ; Xpix,Ypix           : Integer ;
1105                                XP,YP,ZP,VX,VY,VZ   : out Coordinate );
1106         ---Level: Public
1107         ---Purpose: Returns the coordinate of the point (Xpix,Ypix)
1108         --          in the view (XP,YP,ZP), and the projection vector of the
1109         --          view passing by the point (for PerspectiveView).
1110
1111         Depth( me ) returns Length ;
1112         ---Level: Public
1113         ---Purpose: Returns the Distance between the Eye and View Point.
1114
1115         Proj( me ; Vx,Vy,Vz : out Parameter );
1116         ---Level: Public
1117         ---Purpose: Returns the projection vector.
1118
1119         At( me ; X,Y,Z : out Coordinate );
1120         ---Level: Public
1121         ---Purpose: Returns the position of the view point.
1122
1123         Up( me ; Vx,Vy,Vz : out Parameter );
1124         ---Level: Public
1125         ---Purpose: Returns the vector giving the position of the high point.
1126
1127         Twist( me ) returns PlaneAngle ;
1128         ---Level: Public
1129         ---Purpose: Returns in RADIANS the orientation of the view around
1130         --          the visual axis measured from the Y axis of the screen.
1131
1132         ShadingModel ( me ) returns TypeOfShadingModel ;
1133         ---Level: Public
1134         ---Purpose: Returns the current shading model.
1135
1136         SurfaceDetail(me) returns  TypeOfSurfaceDetail;
1137         ---Level: Public
1138         -- purpose: returns the current SurfaceDetail mode
1139
1140         TextureEnv(me)  returns  TextureEnv  from  Graphic3d;
1141         ---Level: Public
1142         -- purpose: return the current environment texture used
1143
1144         Transparency(me) returns Boolean from Standard;
1145         ---Level: Public
1146         ---Purpose: Returns the transparency activity.
1147
1148         Visualization ( me ) returns TypeOfVisualization from V3d;
1149         ---Level: Public
1150         ---Purpose: Returns the current visualisation mode.
1151
1152         Antialiasing ( me ) returns Boolean;
1153         ---Level: Public
1154         ---Purpose: Indicates if the antialiasing is active (True) or
1155         --          inactive (False).
1156
1157         ZCueing ( me; Depth, Width : out Length ) returns Boolean ;
1158         ---Level: Public
1159         ---Purpose: Returns activity and information on the Zcueing.
1160         --          <Depth> : Depth of plane.
1161         --          <Width> : Thickness around the plane.
1162
1163         ZClipping ( me; Depth, Width : out Length ) returns TypeOfZclipping;
1164         ---Level: Public
1165         ---Purpose: Returns current information on the ZClipping.
1166         --          <Depth> : Depth of plane.
1167         --          <Width> : Thickness around the plane.
1168         --          <TypeOfZclipping>  :        "BACK"
1169         --                                      "FRONT"
1170         --                                      "SLICE"
1171         --                                      "OFF"
1172
1173         IfMoreLights( me ) returns Boolean;
1174         ---Level: Advanced
1175         ---Purpose: Returns True if One light more can be
1176         --          activated in this View.
1177
1178         InitActiveLights(me: mutable);
1179         ---Level: Advanced
1180         ---Purpose: initializes an iteration on the active Lights.
1181
1182         MoreActiveLights (me) returns Boolean from Standard;
1183         ---Level: Advanced
1184         ---Purpose: returns true if there are more active Light(s) to return.
1185
1186         NextActiveLights (me: mutable);
1187         ---Level: Advanced
1188         ---Purpose : Go to the next active Light
1189         --           (if there is not, ActiveLight will raise an exception)
1190
1191         ActiveLight(me) returns Light from V3d;
1192         ---Level: Advanced
1193
1194         Viewer ( me ) returns Viewer from V3d;
1195         ---Level: Advanced
1196         ---Purpose: Returns the viewer in which the view has been created.
1197
1198         IfWindow ( me ) returns Boolean;
1199         ---Level: Public
1200         ---Purpose: Returns True if MyView is associated with a window .
1201
1202         Window ( me ) returns Window from Aspect
1203         ---Level: Public
1204         ---Purpose: Returns the Aspect Window associated with the view.
1205                 raises BadValue from V3d;
1206         --      If MyView is not associated with a window
1207
1208         Type( me ) returns TypeOfView from V3d;
1209         ---Level: Public
1210         ---Purpose: Returns the Type of the View
1211
1212         Pan (me            : mutable;
1213              theDXp        : Integer from Standard;
1214              theDYp        : Integer from Standard;
1215              theZoomFactor : Factor from Quantity = 1;
1216              theToStart    : Boolean = Standard_True);
1217         ---Level: Public
1218         ---Purpose: Translates the center of the view along "x" and "y" axes of
1219         -- view projection. Can be used to perform interactive panning operation.
1220         -- In that case the DXp, DXp parameters specify panning relative to the
1221         -- point where the operation is started.
1222         -- @param theDXp [in] the relative panning on "x" axis of view projection, in pixels.
1223         -- @param theDYp [in] the relative panning on "y" axis of view projection, in pixels.
1224         -- @param theZoomFactor [in] the zooming factor.
1225         -- @param theToStart [in] pass TRUE when starting panning to remember view
1226         -- state prior to panning for relative arguments. Passing 0 for relative
1227         -- panning parameter should return view panning to initial state.
1228         -- Performs update of view.
1229
1230         Zoom (me     : mutable;
1231               theXp1 : Integer from Standard;
1232               theYp1 : Integer from Standard;
1233               theXp2 : Integer from Standard;
1234               theYp2 : Integer from Standard)
1235         is static;
1236         ---Level: Public
1237         ---Purpose: Zoom the view according to a zoom factor computed
1238         -- from the distance between the 2 mouse position.
1239         -- @param theXp1 [in] the x coordinate of first mouse position, in pixels.
1240         -- @param theYp1 [in] the y coordinate of first mouse position, in pixels.
1241         -- @param theXp2 [in] the x coordinate of second mouse position, in pixels.
1242         -- @param theYp2 [in] the y coordinate of second mouse position, in pixels.
1243
1244         StartZoomAtPoint (me    : mutable;
1245                           theXp : Integer from Standard;
1246                           theYp : Integer from Standard);
1247         ---Level: Public
1248         ---Purpose: Defines starting point for ZoomAtPoint view operation.
1249         -- @param theXp [in] the x mouse coordinate, in pixels.
1250         -- @param theYp [in] the y mouse coordinate, in pixels.
1251
1252         ZoomAtPoint(me : mutable;
1253                     theMouseStartX : Integer from Standard;
1254                     theMouseStartY : Integer from Standard;
1255                     theMouseEndX   : Integer from Standard;
1256                     theMouseEndY   : Integer from Standard);
1257         ---Level: Public
1258         ---Purpose: Zooms the model at a pixel defined by the method StartZoomAtPoint().
1259
1260         AxialScale  ( me: mutable; Dx, Dy: Integer from Standard;  Axis:  TypeOfAxe  from  V3d );
1261         ---Level: Public
1262         ---Purpose: Performs  anisotropic scaling  of  <me>  view  along  the  given  <Axis>.
1263             -- The  scale  factor  is  calculated on a basis of
1264             -- the mouse pointer displacement <Dx,Dy>.
1265         -- The  calculated  scale  factor  is  then  passed  to  SetAxialScale(Sx,  Sy,  Sz)  method.
1266
1267         StartRotation(me : mutable ; X,Y :Integer from Standard;
1268                zRotationThreshold: Ratio from Quantity = 0.0);
1269         ---Level: Public
1270     ---Purpose: Begin the rotation of the view around the screen axis
1271     -- according to the mouse position <X,Y>.
1272     --  Warning: Enable rotation around the Z screen axis when <zRotationThreshold>
1273     -- factor is > 0 soon the distance from the start point and the center
1274     -- of the view is > (medium viewSize * <zRotationThreshold> ).
1275     -- Generally a value of 0.4 is usable to rotate around XY screen axis
1276     -- inside the circular threshold area and to rotate around Z screen axis
1277     -- outside this area.
1278
1279         Rotation(me:mutable;  X,Y :Integer from Standard);
1280         ---Level: Public
1281     ---Purpose: Continues the rotation of the view
1282     -- with an angle computed from the last and new mouse position <X,Y>.
1283
1284         FitAll ( me : mutable ; aWindow: Window from Aspect;
1285                       Umin, Vmin, Umax, Vmax : Coordinate )
1286         is static private;
1287         ---Level: Public
1288     ---Purpose: Change the scale factor and position of the view
1289     -- such as the bounding box <Umin, Vmin, Umax, Vmax> is contains
1290     -- in the view.
1291
1292
1293         -----------------------------------------
1294         ---Category: Private or Protected methods
1295         -----------------------------------------
1296
1297         SetFocale( me : mutable ; Focale : Length )
1298         ---Purpose: Change View Plane Distance for Perspective Views
1299         raises TypeMismatch from Standard
1300         ---Purpose:  Warning! raises TypeMismatch from Standard if the view
1301         --          is not a perspective view.
1302         is static ;
1303
1304         Focale( me ) returns Length;
1305         ---Purpose: Returns the View Plane Distance for Perspective Views
1306
1307         View ( me) returns View from Visual3d is static ;
1308         ---Level: Advanced
1309         ---Purpose: Returns the associated Visual3d view.
1310
1311         ScreenAxis( myclass ; Vpn,Vup        : Dir from gp ;
1312                               Xaxe,Yaxe,Zaxe : out Vector from Graphic3d )
1313                                         returns Boolean is private ;
1314         ---Purpose: Determines the screen axes in the reference
1315         --          framework of the view.
1316
1317
1318         TrsPoint( myclass ; V : Vertex from Graphic3d ;
1319                                 Matrix : Array2OfReal from TColStd )
1320                                 returns Vertex from Graphic3d is private ;
1321         ---Purpose: Transforms the Vertex V according to the matrice Matrix .
1322         
1323         ImmediateUpdate (me) is static protected;
1324           ---Purpose: 
1325
1326         SetComputedMode ( me : mutable; aMode : Boolean from Standard )
1327         is static;
1328         ---Level: Advanced
1329         ---Purpose: Switches computed HLR mode in the view
1330         ---Category: Methods to modify the class definition
1331
1332         ComputedMode ( me )
1333         returns Boolean from Standard
1334         is static;
1335         ---Level: Advanced
1336         ---Purpose: Returns the computed HLR mode state
1337         ---Category: Inquire methods
1338
1339         MinMax ( me; Umin,Vmin, Umax,Vmax : out Coordinate ) returns Integer
1340         ---Purpose: Returns the objects number and the projection window
1341         --          of the objects contained in the view.
1342         is static private;
1343
1344         MinMax ( me; Xmin,Ymin,Zmin, Xmax,Ymax,Zmax : out Coordinate )
1345         returns Integer
1346         ---Purpose: Returns the objects number and the box encompassing
1347         --          the objects contained in the view
1348         is static private;
1349
1350         Gravity ( me; X,Y,Z : out Coordinate ) returns Integer
1351         ---Purpose: Returns the Objects number and the gravity center
1352         --          of ALL viewable points in the view
1353         is static private;
1354
1355         Init(me: mutable) is private;
1356
1357         ---Category: for compatibility.
1358
1359         WindowFitAll ( me : mutable ; Xmin, Ymin, Xmax, Ymax : Integer);
1360         ---Purpose: idem than WindowFit
1361
1362         Compute ( me; AVertex   : Vertex from Graphic3d )
1363                 returns Vertex from Graphic3d
1364                 is static private;
1365         ---Level: Internal
1366         ---Purpose: Returns a new vertex when the grid is activated.
1367
1368         SetGrid ( me    : mutable;
1369                   aPlane: Ax3 from gp;
1370                   aGrid : Grid from Aspect )
1371                 is static;
1372         ---Level: Internal
1373         ---Purpose: Defines or Updates the definition of the
1374         --          grid in <me>
1375         ---Category: Methods to modify the class definition
1376
1377         SetGridGraphicValues ( me       : mutable;
1378                                aGrid    : Grid from Aspect )
1379                 is static;
1380         ---Level: Internal
1381         ---Purpose: Defines or Updates the graphic definition of the
1382         --          grid in <me>
1383         ---Category: Methods to modify the class definition
1384
1385         SetGridActivity ( me    : mutable;
1386                           aFlag : Boolean from Standard )
1387                 is static;
1388         ---Level: Internal
1389         ---Purpose: Defines or Updates the activity of the
1390         --          grid in <me>
1391         ---Category: Methods to modify the class definition
1392
1393         Dump ( me: mutable;
1394                theFile       : CString from Standard;
1395                theBufferType : BufferType from Graphic3d = Graphic3d_BT_RGB )
1396     returns Boolean from Standard;
1397         ---Level: Public
1398         ---Purpose: dump the full contents of the view at the same
1399         --          scale in the file <theFile>. The file name
1400         --          extension must be one of ".png",".bmp",".jpg",".gif".
1401         --          Returns FALSE when the dump has failed
1402
1403       Print (me; hPrnDC: Handle from Aspect = 0;
1404              showDialog: Boolean = Standard_True;
1405              showBackground : Boolean = Standard_True;
1406              filename: CString = NULL;
1407              printAlgorithm : PrintAlgo from Aspect = Aspect_PA_STRETCH)
1408       returns Boolean from Standard is static;
1409
1410         ---Level: Public
1411         ---Purpose: print the contents of the view to printer with preview.
1412     -- <hPrnDC> : If you have already an PrinterDeviceContext (HDC),
1413     -- then you can pass it to the print routines.
1414         -- If you don't have an PrinterDeviceContext, then this parameter should
1415     -- be NULL.
1416     -- <showDialog> : If hPrnDC == NULL, then you can force the print routines to
1417     -- open a Print Dialog box.
1418         -- If you want to do this, then set showDialog to TRUE
1419         -- If you don't want to see a dialog (only possible, if you have a hPrnDC
1420     -- or the dialog box was opened once before) then set <showDialog> to FALSE.
1421     -- <showBackground> : When set to FALSE then print the view without background color
1422     -- (background is white)
1423         -- else set to TRUE for printing with current background color.
1424     -- <filename>: If != NULL, then the view will be printed to a file.
1425     -- <printAlgorithm>: If you want to select the print algorithm, then you can
1426         -- specify one of existing algorithms: Aspect_PA_STRETCH, Aspect_PA_TILE.
1427     -- Returns Standard_True if the data is passed to the printer, otherwise
1428     -- Standard_False if the print operation failed. This might be related to
1429     -- insufficient memory or some internal errors. All this errors are
1430     -- indicated by the message boxes (on level of OpenGl_GraphicDriver).
1431     --  Warning: This function can reuse FBO assigned to the 
1432     --  view on level of OpenGl_GraphicDriver; Please take it into account if
1433     --  you use it for your purposes;
1434     --  Warning: Works only under Windows.
1435
1436         ToPixMap (me : mutable;
1437                   theImage  : in out PixMap from Image;
1438                   theWidth  : Integer from Standard;
1439                   theHeight : Integer from Standard;
1440                   theBufferType : BufferType from Graphic3d = Graphic3d_BT_RGB;
1441                   theToKeepAspect : Boolean from Standard = Standard_True;
1442                   theStereoOptions : StereoDumpOptions from V3d = V3d_SDO_MONO)
1443         returns Boolean from Standard;
1444         ---Level   : Public
1445         ---Purpose : Dumps the full contents of the view
1446         --           to a pixmap of pixel size <theWidth> * <theHeight> and
1447         --           buffer type <theBufferType>. If <theToKeepAspect> is true
1448         --           the aspect ratio of view will be kept if <theWidth> and <theHeight>
1449         --           define another ratio.
1450         --           Pixmap will be automatically (re)allocated when needed.
1451         --           When dumping stereographic camera - the corresponding
1452         --           middle-point monographic projection will be used for dumping by default.
1453         --           <theStereoOptions> flags are to be used for dumping then left or
1454         --           right eye projections.
1455
1456     SetProjModel( me : mutable;
1457         amOdel: TypeOfProjectionModel from V3d = V3d_TPM_SCREEN )
1458         is static;
1459          ---Level   : Advanced
1460          ---Purpose : Manages projection model
1461
1462     ProjModel( me )
1463         returns TypeOfProjectionModel from V3d
1464         is static;
1465          ---Level   : Advanced
1466          ---Purpose : Returns the current projection model
1467
1468         SetBackFacingModel ( me     : mutable;
1469             aModel : TypeOfBackfacingModel from V3d = V3d_TOBM_AUTOMATIC)
1470             is static;
1471          ---Level   : Public
1472          ---Purpose : Manages display of the back faces
1473      -- When <aModel> is TOBM_AUTOMATIC the object backfaces
1474      -- are displayed only for surface objects and
1475      -- never displayed for solid objects.
1476      -- this was the previous mode.
1477      --      <aModel> is TOBM_ALWAYS_DISPLAYED the object backfaces
1478      --       are always displayed both for surfaces or solids.
1479      --      <aModel> is TOBM_NEVER_DISPLAYED the object backfaces
1480      --       are never displayed.
1481
1482         BackFacingModel ( me )
1483             returns TypeOfBackfacingModel from V3d
1484         is static;
1485          ---Level   : Public
1486          ---Purpose : Returns current state of the back faces display
1487
1488         EnableDepthTest( me; enable : Boolean from Standard = Standard_True )
1489         is static;
1490      ---Level: Public
1491      ---Purpose: turns on/off opengl depth testing
1492
1493         IsDepthTestEnabled( me ) returns Boolean from Standard
1494         is static;
1495      ---Level: Public
1496      ---Purpose: returns the current state of the depth testing
1497
1498         EnableGLLight( me; enable : Boolean from Standard = Standard_True )
1499         is static;
1500      ---Level: Public
1501      ---Purpose: turns on/off opengl lighting, currently used in triedron displaying
1502
1503         IsGLLightEnabled( me ) returns Boolean from Standard
1504         is static;
1505      ---Level: Public
1506      ---Purpose: returns the current state of the gl lighting
1507      --          currently used in triedron displaying
1508
1509      AddClipPlane (me : mutable; thePlane : ClipPlane_Handle from Graphic3d) is virtual;
1510      ---Purpose: Adds clip plane to the view. The composition of clip planes truncates the
1511      -- rendering space to convex volume. Number of supported clip planes can be consulted
1512      -- by PlaneLimit method of associated Visual3d_View. Please be aware that the planes
1513      -- which exceed the limit are ignored during rendering. 
1514      -- @param thePlane [in] the clip plane to be added to view.
1515
1516      RemoveClipPlane (me : mutable; thePlane : ClipPlane_Handle from Graphic3d) is virtual;
1517      ---Purpose: Removes clip plane from the view.
1518      -- @param thePlane [in] the clip plane to be removed from view.
1519
1520      SetClipPlanes (me : mutable; thePlanes : SequenceOfHClipPlane from Graphic3d);
1521      ---Purpose: Sets sequence of clip planes to the view. The planes that have been set
1522      -- before are removed from the view. The composition of clip planes
1523      -- truncates the rendering space to convex volume. Number of supported
1524      -- clip planes can be consulted by PlaneLimit method of associated
1525      -- Visual3d_View. Please be aware that the planes which exceed the limit
1526      -- are ignored during rendering. 
1527      -- @param thePlanes [in] the clip planes to set.
1528
1529      GetClipPlanes (me) returns SequenceOfHClipPlane from Graphic3d;
1530      ---C++: return const&
1531      ---Purpose: Get clip planes.
1532      -- @return sequence clip planes that have been set for the view
1533
1534     SetCamera (me : mutable; theCamera : Camera_Handle from Graphic3d) is static;
1535     ---Level: Public
1536     ---Purpose: Change camera used by view.
1537
1538     Camera (me) returns Camera_Handle from Graphic3d is static;
1539     ---Level: Public
1540     ---C++: return const&
1541     ---Purpose: Returns camera object of the view.
1542     -- @return: handle to camera object, or NULL if 3D view does not use
1543     -- the camera approach.
1544
1545     FitMinMax (me;
1546                theCamera          : Camera_Handle from Graphic3d;
1547                theMinCorner       : XYZ from gp;
1548                theMaxCorner       : XYZ from gp;
1549                theMargin          : Real from Standard;
1550                theResolution      : Real from Standard = 0.0;
1551                theToEnlargeIfLine : Boolean from Standard = Standard_True)
1552                returns Boolean from Standard is protected;
1553     ---Level: Protected
1554     ---Purpose: Transform camera eye, center and scale to fit in the
1555     -- passed bounding box specified in WCS.
1556     -- @param theCamera [in] the camera.
1557     -- @param theMinCorner [in] the minimal corner of bounding box.
1558     -- @param theMaxCorner [in] the maximal corner of bounding box.
1559     -- @param theMargin [in] the margin coefficient for view borders.
1560     -- @param theResolution [in] the minimum size of projection of
1561     --        bounding box in Xv or Yv direction when it considered to
1562     --        be a thin plane or point (without a volume).
1563     --        In this case only the center of camera is adjusted.
1564     -- @param theToEnlargeIfLine [in] if passed TRUE - in cases when the
1565     -- whole bounding box projected into thin line going along
1566     -- Z-axis of screen, the view plane is enlarged such that
1567     -- we see the whole line on rotation, otherwise only the
1568     -- center of camera is adjusted.
1569     -- @return TRUE if the fit all operation can be done.
1570
1571     Scale (me;
1572            theCamera : Camera_Handle from Graphic3d;
1573            theSizeXv : Real from Standard;
1574            theSizeYv : Real from Standard) is protected;
1575     ---Level: Protected
1576     ---Purpose: Scales camera to fit the view frame of defined width and height
1577     -- keeping the aspect. For orthogonal camera the method changes scale,
1578     -- for perspective adjusts Eye location about the Center point.
1579     -- @param theSizeXv [in] size of viewport frame on "x" axis.
1580     -- @param theSizeYv [in] size of viewport frame on "y" axis.
1581
1582     Translate (me;
1583          theCamera : Camera_Handle from Graphic3d;
1584          theDXv    : Real from Standard;
1585          theDYv    : Real from Standard) is protected;
1586     ---Level: Protected
1587     -- Purpose: Translates camera eye and center along the view plane.
1588     -- @param theCamera [in] the camera to translate.
1589     -- @param theDXv [in] the translation in "x" direction.
1590     -- @param theDYv [in] the translation in "y" direction.
1591
1592     RenderingParams (me) returns RenderingParams from Graphic3d is static;
1593     ---C++: return const &
1594     ---Level: Public
1595     ---Purpose: Returns current rendering parameters and effect settings.
1596     
1597     ChangeRenderingParams (me : mutable) returns RenderingParams from Graphic3d is static;
1598     ---C++: return &
1599     ---Level: Public
1600     ---Purpose: Returns reference to current rendering parameters and effect settings.
1601
1602         IsCullingEnabled (me) returns Boolean from Standard is static;
1603      ---Level: Public
1604      ---Purpose: @return flag value of objects culling mechanism
1605
1606         SetFrustumCulling (me : mutable; theMode : Boolean from Standard) is static;
1607      ---Level: Public
1608      ---Purpose: Turn on/off automatic culling of objects outside frustrum (ON by default)
1609
1610 fields
1611
1612         myOldMouseX : Real is protected;
1613         myOldMouseY : Real is protected;
1614         myCamStartOpUp : Dir from gp is protected;
1615         myCamStartOpEye : Pnt from gp is protected;
1616         myCamStartOpBnd : Real[6] is protected;
1617         myCamStartOpCenter : Pnt from gp is protected;
1618         myCamera : Camera_Handle from Graphic3d is protected;
1619
1620         MyViewer :              ViewerPointer from V3d ;
1621         MyActiveLights:         ListOfTransient from V3d;
1622
1623         MyView :                View from Visual3d is protected ;
1624         MyViewContext :         ContextView from Visual3d ;
1625         MyBackground:           Background from Aspect ;
1626         MyGradientBackground:   GradientBackground from Aspect ;
1627         MyDefaultViewAxis:      Vector from Graphic3d ;
1628         MyDefaultViewPoint:     Vertex from Graphic3d ;
1629
1630         MyWindow:               Window from Aspect;
1631
1632         myActiveLightsIterator: ListIteratorOfListOfTransient from TColStd;
1633
1634         sx,sy: Integer from Standard;
1635         rx,ry: Real from Standard;
1636         gx,gy,gz: Real from Standard;
1637         myComputedMode: Boolean from Standard;
1638         SwitchSetFront: Boolean from Standard;
1639         MyZoomAtPointX, MyZoomAtPointY : Integer from Standard;
1640
1641         -- the 3d grid
1642         MyGrid                  :       Grid from Aspect;
1643         MyPlane                 :       Ax3 from gp;
1644
1645         --MyColorScale            :       ColorScale from V3d;
1646         MyLayerMgr              :       LayerMgr from V3d;
1647
1648         MyProjModel         :   TypeOfProjectionModel from V3d is protected;
1649             
1650         -- the transformation between XoY and the grid plane
1651         MyTrsf                  :       Array2OfReal from TColStd;
1652
1653         -- echo
1654         MyGridEchoStructure             :       Structure from Graphic3d;
1655         MyGridEchoGroup                 :       Group from Graphic3d;
1656
1657         MyTransparencyFlag      : Boolean from Standard;
1658         myImmediateUpdate: Boolean from Standard is protected;
1659
1660         myXscreenAxis           : Vector from Graphic3d;
1661         myYscreenAxis           : Vector from Graphic3d;
1662         myZscreenAxis           : Vector from Graphic3d;
1663         myViewAxis              : Vector from Graphic3d;
1664         myGravityReferencePoint : Vertex from Graphic3d;
1665         myCamProjectionShift    : Pnt from gp;
1666
1667 friends
1668
1669         SetViewOn from class Viewer from V3d ( me : mutable ),
1670         SetViewOn from class Viewer from V3d ( me : mutable ; View : View from V3d ),
1671         SetViewOff from class Viewer from V3d ( me : mutable ),
1672         SetViewOff from class Viewer from V3d ( me : mutable ; View : View from V3d )
1673
1674 end View;