Integration of OCCT 6.5.0 from SVN
[occt.git] / src / Visual3d / Visual3d_View.cdl
1 --
2 -- File:        Visual3d_View.cdl
3 -- Created:     Mardi 17 Septembre 1991
4 -- Author:      NW,JPB,CAL
5 --              05-97: CAL; Ajout du Clear sur les TOS_COMPUTED.
6 --              10-97: CAL; Retrait des DataStructure.
7 --              11-97: CAL; Retrait de la dependance avec math.Calcul developpe.
8 --              11-97: CAL; Ajout de NumberOfDisplayedStructures
9 --              05-98: CAL; Perfs. Connection entre structures COMPUTED.
10 --              16-09-98: BGN; Points d'entree du Triedre (S3819, Phase 1)
11 --              22-09-98: BGN; S3989 (anciennement S3819)
12 --                             TypeOfTriedron* from Aspect(et pas Visual3d)
13 --              02-12-98: S4062. Ajout des layers.
14 --              13-09-99: GG; GER61454 Adds LightLimit() and PlaneLimit() methods
15 --              10-11-99: GG; Add PRO19603 Redraw( area ) method
16 --              14-01-00: GG; Add IMP140100 ViewManager() method
17 --              25-01-00: EUG: G003
18 --                        -> Add backfacing management methods
19 --                             SetBackfacingModel() & BackfacingModel().
20 --                        -> Change SetAnimationModeIsOn() adding degenerate flag
21 --                        -> SetDegenerateModeOn() and Off() become private.
22 --                             Use instead SetComputedMode() for managing
23 --                              HLR in the view.
24 --              THA  - 17/08/00 Thomas HARTL <t-hartl@muenchen.matra-dtv.fr>
25 --                              -> Add Print methods (works only under Windows).-
26 --              GG - RIC120302 Add NEW SetWindow method.
27 --
28 --              30-04-02: JMB; MyDisplayedStructure is now a Map instead
29 --                             of a Set. Improves performance of Selection
30 --                             mechanisms
31 --
32
33 --              SAV  - 22/10/01 -> Add EnableDepthTest() & IsDepthTestEnabled() methods.
34 --              SAV  - 25/10/01 -> Add EnableGLLight() & IsGLLightEnabled() methods.
35 --              VSV - 28/05/02: ZBUFFER mode of Trihedron
36 --              SAV  - 23/12/02 Added methods too set background image
37 --
38 ---Copyright:   MatraDatavision 1991,1992,1993,1994,2001
39 --
40
41 class View from Visual3d inherits DataStructureManager from Graphic3d
42
43         ---Version:
44
45         ---Purpose: Creation and edition of a view in a 3D visualiser.
46         --          A 3D view is composed of an "orientation" part defined
47         --          by the position of the observer, the direction of view,
48         --          and a "mapping" part defined by the type of projection
49         --          (parallel or perspective) and by the window-viewport
50         --          couple which allows passage from the projected coordinate
51         --          space into the screen space.
52         -- Summary of 3D Viewing
53         -- To define a view, you must define:
54         -- -   The view orientation transformation
55         -- -   The view mapping transformation
56         -- -   The view representation.
57         --  To activate a view, you must define:
58         -- -   The associated window.
59
60
61 uses
62
63     Array2OfReal            from TColStd,
64
65     Background              from Aspect,
66     GradientBackground      from Aspect,
67     GraphicDriver           from Aspect,
68     Window                  from Aspect,
69     TypeOfUpdate            from Aspect,
70     TypeOfHighlightMethod   from Aspect,
71     TypeOfTriedronEcho      from Aspect,
72     TypeOfTriedronPosition  from Aspect,
73     Handle                  from Aspect,
74     RenderingContext        from Aspect,
75     GraphicCallbackProc     from Aspect,
76     ColorScale              from Aspect,
77
78     CRawBufferData          from Image,
79
80     CBitFields8             from Graphic3d,
81     CView                   from Graphic3d,
82     GraphicDriver           from Graphic3d,
83     PtrFrameBuffer          from Graphic3d,
84     Plotter                 from Graphic3d,
85     Structure               from Graphic3d,
86     SequenceOfStructure     from Graphic3d,
87     MapOfStructure          from Graphic3d,
88
89     ContextView             from Visual3d,
90     ClipPlane               from Visual3d,
91     Layer                   from Visual3d,
92     Light                   from Visual3d,
93     SetOfClipPlane          from Visual3d,
94     SetOfLight              from Visual3d,
95     TypeOfAnswer            from Visual3d,
96     ViewMapping             from Visual3d,
97     ViewOrientation         from Visual3d,
98     ViewManager             from Visual3d,
99     ViewManagerPtr          from Visual3d,
100
101     TypeOfBackfacingModel   from Visual3d,
102
103     NameOfColor             from Quantity,
104     FillMethod              from Aspect,
105     GradientFillMethod      from Aspect,
106     ExportFormat            from Graphic3d,
107     SortType                from Graphic3d,
108     Color                   from Quantity,
109     FontAspect              from OSD
110
111 raises
112     TransformError          from Visual3d,
113     ViewDefinitionError     from Visual3d
114
115 is
116
117         ----------------------------------------------
118         -- Summary of 3D Viewing                    --
119         --                                          --
120         -- To define a view, you must define        --
121         --                                          --
122         --      The view orientation transformation --
123         --      The view mapping transformation     --
124         --      The view representation.            --
125         --                                          --
126         -- To activate a view, you must define      --
127         --                                          --
128         --      The associated window.              --
129         ----------------------------------------------
130
131         Create ( AManager       : mutable ViewManager from Visual3d )
132                 returns mutable View from Visual3d;
133         ---Level: Public
134         ---Purpose: Creates a view in the viewer <AManager> with a default
135         --          orientation and a default mapping.
136
137         Create ( AManager       : mutable ViewManager from Visual3d;
138                  VO             : ViewOrientation from Visual3d;
139                  VM             : ViewMapping from Visual3d;
140                  CTX            : ContextView from Visual3d )
141                 returns mutable View from Visual3d;
142         ---Level: Public
143         ---Purpose: Creates a view in the viewer <AManager> with the orientation
144         --          <VO>, the mapping <VM>, and the context<CTX>.
145
146         ---------------------------------------------------
147         -- Category: Methods to modify the class definition
148         ---------------------------------------------------
149
150         Activate ( me   : mutable )
151         ---Level: Public
152         ---Purpose: Activates the view <me>.
153         --          Map the associated window on the screen and
154         --          post the view in this window.
155         --  Category: Methods to modify the class definition
156         --  Warning: Raises ViewDefinitionError if the associated
157         --          window isn't defined.
158         raises ViewDefinitionError from Visual3d is static;
159
160         Deactivate ( me : mutable )
161         ---Level: Public
162         ---Purpose: Deactivates the view <me>.
163         --          Unmap the associated window on the screen and
164         --          unpost the view in this window.
165         --  Category: Methods to modify the class definition
166         --  Warning: Raises ViewDefinitionError if the associated
167         --          window isn't defined.
168         raises ViewDefinitionError from Visual3d is static;
169
170         Destroy ( me    : mutable )
171                 is redefined;
172         ---Level: Public
173         ---Purpose: Deletes and erases the view <me>.
174         ---Category: Methods to modify the class definition
175         ---C++: alias ~
176
177         Redraw ( me     : mutable )
178                 is static;
179         ---Level: Public
180         ---Purpose: Updates screen in all cases.
181         ---Category: Methods to modify the class definition
182
183         Redraw ( me     : mutable; x,y,width,height: Integer from Standard )
184                 is static;
185         ---Level: Public
186         ---Purpose: Updates screen area in all cases.
187         -- area is given by his xy min corner and size in pixel coordinates
188         ---Category: Methods to modify the class definition
189
190         Redraw ( me     : mutable;
191                  AnUnderLayer   : Layer from Visual3d;
192                  AnOverLayer    : Layer from Visual3d )
193                 is static;
194         ---Level: Internal
195         ---Purpose: Updates screen in all cases.
196         ---Category: Methods to modify the class definition
197
198         Redraw ( me     : mutable;
199                  AnUnderLayer   : Layer from Visual3d;
200                  AnOverLayer    : Layer from Visual3d;
201                  x,y,width,height: Integer from Standard )
202                 is static;
203         ---Level: Internal
204         ---Purpose: Updates screen area in all cases.
205         -- area is given by his xy min corner and size in pixel coordinates
206         ---Category: Methods to modify the class definition
207
208         Remove ( me     : mutable )
209                 is static;
210         ---Level: Public
211         ---Purpose: Deletes and erases the view <me>.
212         --  Warning: No more graphic operations in <me> after this call.
213         ---Category: Methods to modify the class definition
214
215         Resized ( me    : mutable )
216         ---Level: Public
217         ---Purpose: Updates the view <me> after the modification
218         --          of the associated window.
219         --  Category: Methods to modify the class definition
220         --  Warning: Raises ViewDefinitionError if the associated
221         --          window isn't defined.
222         raises ViewDefinitionError from Visual3d is static;
223
224         SetBackground ( me      : mutable;
225                         ABack   : Background from Aspect )
226         ---Level: Internal
227         ---Purpose: Modifies the default window background.
228         --  Category: Methods to modify the class definition
229         --  Warning: Raises ViewDefinitionError if the associated
230         --          window isn't defined.
231         raises ViewDefinitionError from Visual3d is static;
232
233         SetBackgroundImage( me : mutable; FileName : CString from Standard;
234                                           FillStyle : FillMethod from Aspect;
235                                           update    : Boolean from Standard )
236         ---Level: Internal
237         ---Purpose:
238         --  Category: Methods to modify the class definition
239         --  Warning: Raises ViewDefinitionError if the associated
240         --          window isn't defined.
241         raises ViewDefinitionError from Visual3d is static;
242
243         SetBgImageStyle( me : mutable; FillStyle : FillMethod from Aspect;
244                                        update    : Boolean from Standard )
245         ---Level: Internal
246         ---Purpose:
247         --  Category: Methods to modify the class definition
248         --  Warning: Raises ViewDefinitionError if the associated
249         --          window isn't defined.
250         raises ViewDefinitionError from Visual3d is static;
251
252         SetGradientBackground ( me      : mutable;
253                                 ABack   : GradientBackground from Aspect;
254                                 update  : Boolean from Standard )
255         ---Level: Internal
256         ---Purpose: Modifies the gradient window background.
257         --  Category: Methods to modify the class definition
258         --  Warning: Raises ViewDefinitionError if the associated
259         --          window isn't defined.
260         raises ViewDefinitionError from Visual3d is static;
261
262         SetBgGradientStyle( me : mutable;
263                             FillStyle : GradientFillMethod from Aspect;
264                             update    : Boolean from Standard )
265         ---Level: Internal
266         ---Purpose:
267         --  Category: Methods to modify the class definition
268         --  Warning: Raises ViewDefinitionError if the associated
269         --          window isn't defined.
270         raises ViewDefinitionError from Visual3d is static;
271
272         SetBackFacingModel ( me     : mutable;
273                         aModel : TypeOfBackfacingModel from Visual3d
274         ) is static;
275         ---Level   : Public
276         ---Purpose : Manages display of the back faces
277
278         BackFacingModel ( me )
279         returns TypeOfBackfacingModel from Visual3d is static;
280         ---Level   : Public
281         ---Purpose : Returns current state of the back faces display
282
283         SetContext ( me         : mutable;
284                      CTX        : ContextView from Visual3d )
285                 is static;
286         ---Level: Public
287         ---Purpose: Sets the context <CTX> in the view <me>.
288         ---Category: Methods to modify the class definition
289
290         SetTransform ( me       : mutable;
291                        AMatrix  : Array2OfReal from TColStd )
292         ---Level: Internal
293         ---Purpose: Sets the transformation matrix that is applied
294         --          to <MyViewOrientation> field of the view <me>.
295         --
296         --          <AMatrix> is defined as a 4*4 real matrix.
297         --
298         --              -------------------
299         --              | a11 a12 a13  t1 |
300         --              | a21 a22 a23  t2 |
301         --              | a31 a32 a33  t3 |
302         --              |  0   0   0   1  |
303         --              -------------------
304         --
305         --  Category: Methods to modify the class definition
306         --  Warning: Raises TransformError if the matrix isn't a 4x4 matrix.
307         raises TransformError from Visual3d is static;
308
309         SetViewMapping ( me     : mutable;
310                          VM     : ViewMapping from Visual3d )
311                 is static;
312         ---Level: Public
313         ---Purpose: Modifies the mapping of the view <me>.
314         ---Category: Methods to modify the class definition
315
316         SetViewMappingDefault ( me      : mutable )
317                 is static;
318         ---Level: Public
319         ---Purpose: Saves the current mapping which will be the
320         --          reference value for the reset of the mapping
321         --          done by the ViewmappingReset method.
322         ---Category: Methods to modify the class definition
323
324         SetViewOrientation ( me : mutable;
325                              VO : ViewOrientation from Visual3d )
326                 is static;
327         ---Level: Public
328         ---Purpose: Modifies the orientation of <me>.
329         ---Category: Methods to modify the class definition
330
331         SetViewOrientationDefault ( me  : mutable )
332                 is static;
333         ---Level: Public
334         ---Purpose: Saves the current orientation which will be the
335         --          reference value for the reset of the orientation
336         --          done by the ViewOrientationReset method.
337         ---Category: Methods to modify the class definition
338
339         SetWindow ( me          : mutable;
340                     AWindow     : Window from Aspect )
341         ---Level: Public
342         ---Purpose: Associates the window <AWindow> to the view <me>.
343         --          No new association if the window is already defined.
344         --  Category: Methods to modify the class definition
345         --  Warning: Raises ViewDefinitionError if it is impossible
346         --          to associate a view and a window.
347         --          (association already done or another problem)
348         --          Modifies the viewmapping of the associated view
349         --          when it calls the SetRatio method.
350         raises ViewDefinitionError from Visual3d is static;
351         ---Purpose:
352         --          After this call, each view is mapped in an unique window.
353         --
354         -- Programming example :
355         --
356         -- An example when we have 1 view and 1 window
357         -- -------------------------------------------
358         --
359         -- // Define a graphic device
360         -- Handle(Graphic3d_GraphicDevice) GD =
361         --                      new Graphic3d_GraphicDevice ("dummy:0.0");
362         --
363         -- // Define a view manager
364         -- Handle(Visual3d_ViewManager) VM = new Visual3d_ViewManager (GD);
365         --
366         -- // Define a view
367         -- Handle(Visual3d_View) V = new Visual3d_View (VM);
368         --
369         -- // Define a window
370         -- Handle(Xw_Window) W = new Xw_Window
371         --      (GD, "Graphic View 1", 0.695, 0.695, 0.600, 0.600,
372         --              Xw_WQ_3DQUALITY, Quantity_NOC_MATRAGRAY);
373         --
374         -- // Associate the view and the window
375         -- V->SetWindow (W);
376         --
377         -- // Map the window
378         -- W->Map ();
379         --
380         -- // Activate the view
381         -- V->Activate ();
382         --
383
384         SetWindow ( me          : mutable;
385                     AWindow     : Window from Aspect;
386                     AContext: RenderingContext from Aspect;
387                     ADisplayCB: GraphicCallbackProc from Aspect;
388                     AClientData: Address from Standard
389                   )
390         ---Level: Public
391         ---Purpose: Associates the window <AWindow> and context <AContext>
392         --          to the view <me>.
393         --          If <AContext> is not NULL the graphic context is used
394         --          directly to draw something in this view.
395         --          Otherwise an internal context is created.
396         --          If <ADisplayCB> is not NULL then a user display CB is
397         --          call at the end of the OCC graphic traversal and just
398         --          before the swap of buffers. The <aClientData> is pass
399         --          to this call back.
400         --          No new association if the window is already defined.
401         --  Category: Methods to modify the class definition
402         --  Warning: Raises ViewDefinitionError if it is impossible
403         --          to associate a view and a window.
404         --          (association already done or another problem)
405         --          Modifies the viewmapping of the associated view
406         --          when it calls the SetRatio method.
407         raises ViewDefinitionError from Visual3d is static;
408         ---Purpose:
409         --          After this call, each view is mapped in an unique window.
410         --
411         -- Programming example :
412         --
413         -- An example when we have 1 view and 1 widget
414         -- -------------------------------------------
415         --
416         -- // Define a graphic device
417         -- Handle(Graphic3d_GraphicDevice) GD =
418         --                      new Graphic3d_GraphicDevice ("dummy:0.0");
419         --
420         -- // Define a view manager
421         -- Handle(Visual3d_ViewManager) VM = new Visual3d_ViewManager (GD);
422         --
423         -- // Define a view
424         -- Handle(Visual3d_View) V = new Visual3d_View (VM);
425         --
426         -- // Define a widget
427         -- Widget DA = GLwCreateMDrawingArea (Widget parent, char *name,
428         --                             ArgList arglist, Cardinal argcount);
429         -- Handle(Xw_Window) W = new Xw_Window(DA);
430         --
431         -- // Define the graphic context
432         -- GLXContext CTX = glXCreateContext(...)
433         -- // Define the graphic call back and client data
434         -- Handle(Object_View) myObject = new Object_View(...);
435         -- static void DisplayCallback( Window w, XtPointer client_data,
436         --                      XtPointer call_data)
437         -- { .... }
438         -- // Associate the view and the widget
439         -- V->SetWindow (W, CTX, DisplayCallback, myObject);
440         --
441         -- // Activate the view
442         -- V->Activate ();
443         --
444
445         Update ( me     : mutable )
446                 is static;
447         ---Level: Public
448         ---Purpose: Updates screen in function of modifications of
449         --          the structures.
450         ---Category: Methods to modify the class definition
451
452         Update ( me             : mutable;
453                  AnUnderLayer   : Layer from Visual3d;
454                  AnOverLayer    : Layer from Visual3d )
455                 is static;
456         ---Level: Internal
457         ---Purpose: Updates screen in function of modifications of
458         --          the structures.
459         ---Category: Methods to modify the class definition
460
461         ViewMappingReset ( me   : mutable )
462                 is static;
463         ---Level: Public
464         ---Purpose: Sets the value of the mapping to be the same as
465         --          the mapping saved by the SetViewMappingDefaut method.
466         ---Category: Methods to modify the class definition
467
468         ViewOrientationReset ( me       : mutable )
469                 is static;
470         ---Level: Public
471         ---Purpose: Sets the value of the orientation to be the same as the
472         --          orientation saved by the SetViewOrientationDefaut method.
473         ---Category: Methods to modify the class definition
474
475         ---------------------------------------------------
476         -- Category: Methods to modify the class definition
477         --           Animation Mode
478         ---------------------------------------------------
479
480         SetAnimationModeOn ( me : mutable;
481                 degenerate : Boolean from Standard = Standard_False )
482                 is static;
483         ---Level: Advanced
484         ---Purpose: Activates animation mode with an optional degeneration
485         --      according to the TypeOfDegenerateModel of each graphic structure
486         --      When the animation mode is activated in the view,
487         --      all Graphic3d_Structure are stored in a graphic object.
488         --  Warning: only ONE view may have animation mode turned on
489         --      at same time.
490         ---Category: Methods to modify the class definition
491
492         SetAnimationModeOff ( me        : mutable )
493                 is static;
494         ---Level: Advanced
495         ---Purpose: Deactivates the animation mode.
496         ---Category: Methods to modify the class definition
497
498         AnimationModeIsOn ( me )
499                 returns Boolean from Standard
500                 is static;
501         ---Level: Advanced
502         ---Purpose: Returns the activity of the animation mode.
503         ---Category: Inquire methods
504
505         ---------------------------------------------------
506         -- Category: Methods to modify the class definition
507         --           Degenerate Mode
508         ---------------------------------------------------
509
510         SetDegenerateModeOn ( me        : mutable )
511                 is static private;
512         ---Level: Advanced
513         ---Purpose: Activates degenerate mode.
514         --      When the degenerate mode is activated in the view,
515         --      all Graphic3d_Structure with the type TOS_COMPUTED
516         --      displayed in this view are not computed.
517         ---Category: Methods to modify the class definition
518
519         SetDegenerateModeOff ( me       : mutable )
520                 is static private;
521         ---Level: Advanced
522         ---Purpose: Deactivates the degenerate mode.
523         ---Category: Methods to modify the class definition
524
525         DegenerateModeIsOn ( me )
526                 returns Boolean from Standard
527                 is static;
528         ---Level: Advanced
529         ---Purpose: Returns the activity of the degenerate mode.
530         ---Category: Inquire methods
531
532         SetComputedMode ( me : mutable; aMode : Boolean from Standard ) is static;
533         ---Level: Advanced
534         ---Purpose: Switches computed HLR mode in the view
535         ---Category: Methods to modify the class definition
536
537         ComputedMode ( me ) returns Boolean from Standard is static;
538         ---Level: Advanced
539         ---Purpose: Returns the computed HLR mode state
540         ---Category: Inquire methods
541
542         ---------------------------------------------------
543         -- Category: Methods to modify the class definition
544         --           Triedron methods
545         ---------------------------------------------------
546
547         ZBufferTriedronSetup ( me  : mutable;
548                                XColor  : NameOfColor from Quantity = Quantity_NOC_RED;
549                                YColor  : NameOfColor from Quantity = Quantity_NOC_GREEN;
550                                ZColor  : NameOfColor from Quantity = Quantity_NOC_BLUE1;
551                                SizeRatio : Real from Standard = 0.8;
552                                AxisDiametr : Real from Standard = 0.05;
553                                NbFacettes  : Integer from Standard = 12)
554                  is static;
555         ---Level: Advanced
556         ---Purpose: Customization of the ZBUFFER Triedron.
557         ---         Initializes Colors of X Y and axis
558         ---         Scale ratio defines decreasing of trihedron size when
559         ---         its position is out of a View
560
561         TriedronDisplay ( me            : mutable;
562                           APosition     : TypeOfTriedronPosition from Aspect  = Aspect_TOTP_CENTER;
563                           AColor        : NameOfColor from Quantity = Quantity_NOC_WHITE ;
564                           AScale        : Real from Standard  =  0.02;
565                           AsWireframe   : Boolean from Standard = Standard_True )
566                 is static;
567         ---Level: Public
568         ---Purpose: Display of the Triedron.
569         ---         Initialize position, color and length of Triedron axes.
570         ---         The scale is a percent of the window width.
571         ---         If AsWireframe is FALSE triedron is shown in shaded mode
572         ---         AColor is not considered for ZBUFFER mode
573         ---Category:
574
575         TriedronErase ( me              : mutable )
576                 is static;
577         ---Level: Public
578         ---Purpose: Erases the Triedron.
579         ---Category:
580
581         TriedronEcho ( me       : mutable;
582                        AType    : TypeOfTriedronEcho from Aspect  = Aspect_TOTE_NONE )
583                 is static;
584         ---Level: Public
585         ---Purpose: Highlights the echo zone of the Triedron.
586         ---Category:
587
588     ------------------------------------------
589     ---Category: Graduated trihedron
590     ------------------------------------------
591
592     GetGraduatedTrihedron(me;
593                           -- Names of axes --
594                           xname : out CString from Standard;
595                           yname : out CString from Standard;
596                           zname : out CString from Standard;
597                           -- Draw names --
598                           xdrawname : out Boolean from Standard;
599                           ydrawname : out Boolean from Standard;
600                           zdrawname : out Boolean from Standard;
601                           -- Draw values --
602                           xdrawvalues : out Boolean from Standard;
603                           ydrawvalues : out Boolean from Standard;
604                           zdrawvalues : out Boolean from Standard;
605                           -- Draw grid --
606                           drawgrid : out Boolean from Standard;
607                           -- Draw axes --
608                           drawaxes : out Boolean from Standard;
609                           -- Number of splits along axes --
610                           nbx : out Integer from Standard;
611                           nby : out Integer from Standard;
612                           nbz : out Integer from Standard;
613                           -- Offset for drawing values --
614                           xoffset : out Integer from Standard;
615                           yoffset : out Integer from Standard;
616                           zoffset : out Integer from Standard;
617                           -- Offset for drawing names of axes --
618                           xaxisoffset : out Integer from Standard;
619                           yaxisoffset : out Integer from Standard;
620                           zaxisoffset : out Integer from Standard;
621                           -- Draw tickmarks --
622                           xdrawtickmarks : out Boolean from Standard;
623                           ydrawtickmarks : out Boolean from Standard;
624                           zdrawtickmarks : out Boolean from Standard;
625                           -- Length of tickmarks --
626                           xtickmarklength : out Integer from Standard;
627                           ytickmarklength : out Integer from Standard;
628                           ztickmarklength : out Integer from Standard;
629                           -- Grid color --
630                           gridcolor : out Color from Quantity;
631                           -- X name color --
632                           xnamecolor : out Color from Quantity;
633                           -- Y name color --
634                           ynamecolor : out Color from Quantity;
635                           -- Z name color --
636                           znamecolor : out Color from Quantity;
637                           -- X color of axis and values --
638                           xcolor : out Color from Quantity;
639                           -- Y color of axis and values --
640                           ycolor : out Color from Quantity;
641                           -- Z color of axis and values --
642                           zcolor : out Color from Quantity;
643                           -- Name of font for names of axes --
644                           fontOfNames : out CString from Standard;
645                           -- Style of names of axes --
646                           styleOfNames : out FontAspect from OSD;
647                           -- Size of names of axes --
648                           sizeOfNames : out Integer from Standard;
649                           -- Name of font for values --
650                           fontOfValues : out CString from Standard;
651                           -- Style of values --
652                           styleOfValues : out FontAspect from OSD;
653                           -- Size of values --
654                           sizeOfValues : out Integer from Standard)
655     ---Purpose: Returns data of a graduated trihedron.
656     is static;
657
658     GraduatedTrihedronDisplay(me : mutable;
659                               -- Names of axes --
660                               xname : CString from Standard;
661                               yname : CString from Standard;
662                               zname : CString from Standard;
663                               -- Draw names --
664                               xdrawname : Boolean from Standard;
665                               ydrawname : Boolean from Standard;
666                               zdrawname : Boolean from Standard;
667                               -- Draw values --
668                               xdrawvalues : Boolean from Standard;
669                               ydrawvalues : Boolean from Standard;
670                               zdrawvalues : Boolean from Standard;
671                               -- Draw grid --
672                               drawgrid : Boolean from Standard;
673                               -- Draw axes --
674                               drawaxes : Boolean from Standard;
675                               -- Number of splits along axes --
676                               nbx : Integer from Standard;
677                               nby : Integer from Standard;
678                               nbz : Integer from Standard;
679                               -- Offset for drawing values --
680                               xoffset : Integer from Standard;
681                               yoffset : Integer from Standard;
682                               zoffset : Integer from Standard;
683                               -- Offset for drawing names of axes --
684                               xaxisoffset : Integer from Standard;
685                               yaxisoffset : Integer from Standard;
686                               zaxisoffset : Integer from Standard;
687                               -- Draw tickmarks --
688                               xdrawtickmarks : Boolean from Standard;
689                               ydrawtickmarks : Boolean from Standard;
690                               zdrawtickmarks : Boolean from Standard;
691                               -- Length of tickmarks --
692                               xtickmarklength : Integer from Standard;
693                               ytickmarklength : Integer from Standard;
694                               ztickmarklength : Integer from Standard;
695                               -- Grid color --
696                               gridcolor : Color from Quantity;
697                               -- X name color --
698                               xnamecolor : Color from Quantity;
699                               -- Y name color --
700                               ynamecolor : Color from Quantity;
701                               -- Z name color --
702                               znamecolor : Color from Quantity;
703                               -- X color of axis and values --
704                               xcolor : Color from Quantity;
705                               -- Y color of axis and values --
706                               ycolor : Color from Quantity;
707                               -- Z color of axis and values --
708                               zcolor : Color from Quantity;
709                               -- Name of font for names of axes --
710                               fontOfNames : CString from Standard;
711                               -- Style of names of axes --
712                               styleOfNames : FontAspect from OSD;
713                               -- Size of names of axes --
714                               sizeOfNames : Integer from Standard;
715                               -- Name of font for values --
716                               fontOfValues : CString from Standard;
717                               -- Style of values --
718                               styleOfValues : FontAspect from OSD;
719                               -- Size of values --
720                               sizeOfValues : Integer from Standard)
721     ---Purpose: Displays a graduated trihedron.
722     is static;
723
724     GraduatedTrihedronErase(me : mutable)
725     ---Purpose: Erases a graduated trihedron from the view.
726     is static;
727
728         ----------------------------
729         ---Category: Inquire methods
730         ----------------------------
731
732         Background ( me )
733                 returns Background from Aspect
734                 is static;
735         ---Level: Internal
736         ---Purpose: Returns the value of the default window background.
737
738         GradientBackground ( me )
739                 returns GradientBackground from Aspect
740                 is static;
741         ---Level: Internal
742         ---Purpose: Returns the value of the window background.
743
744         ContainsFacet ( me )
745                 returns Boolean from Standard
746                 is static;
747         ---Level: Public
748         ---Purpose: Returns Standard_True if one of the structures
749         --          displayed in the view <me> contains Polygons,
750         --          Triangles or Quadrangles.
751
752         ContainsFacet ( me;
753                         ASet    : MapOfStructure from Graphic3d )
754                 returns Boolean from Standard
755                 is static;
756         ---Level: Public
757         ---Purpose: Returns Standard_True if one of the structures
758         --          in the set <ASet> contains Polygons, Triangles
759         --          or Quadrangles.
760
761         Context ( me )
762                 returns ContextView from Visual3d
763                 is static;
764         ---Level: Public
765         ---Purpose: Returns the current context of the view <me>.
766         ---C++: return const &
767
768         DisplayedStructures ( me; SG: in out MapOfStructure from Graphic3d )
769                 is static;
770         ---Level: Internal
771         ---Purpose: Returns the set of structures displayed in
772         --          the view <me>.
773
774         IsActive ( me )
775                 returns Boolean from Standard
776                 is static;
777         ---Level: Public
778         ---Purpose: Returns the activity flag of the view <me>.
779
780         IsDefined ( me )
781                 returns Boolean from Standard
782                 is static;
783         ---Level: Public
784         ---Purpose: Returns True if the window associated to the view
785         --          <me> is defined.
786
787         IsDeleted ( me )
788                 returns Boolean from Standard
789                 is static;
790         ---Level: Public
791         ---Purpose: Returns Standard_True is the view <me> is deleted.
792         --          <me> is deleted after the call Remove (me).
793         ---Category: Inquire methods
794
795         MinMaxValues ( me;
796                        XMin, YMin, ZMin : out Real from Standard;
797                        XMax, YMax, ZMax : out Real from Standard )
798                 is static;
799         ---Level: Public
800         ---Purpose: Returns the coordinates of the boundary box of all
801         --          structures displayed in the view <me>.
802
803         MinMaxValues ( me;
804                        ASet             : MapOfStructure from Graphic3d;
805                        XMin, YMin, ZMin : out Real from Standard;
806                        XMax, YMax, ZMax : out Real from Standard )
807                 is static;
808         ---Level: Public
809         ---Purpose: Returns the coordinates of the boundary box of all
810         --          structures in the set <ASet>.
811
812         MinMaxValues ( me : mutable;
813                        XMin, YMin       : out Real from Standard;
814                        XMax, YMax       : out Real from Standard )
815                 is static;
816         ---Level: Public
817         ---Purpose: Returns the coordinates of the projection of the
818         --          boundary box of all structures displayed in the view <me>.
819
820         MinMaxValues ( me : mutable;
821                        ASet             : MapOfStructure from Graphic3d;
822                        XMin, YMin       : out Real from Standard;
823                        XMax, YMax       : out Real from Standard )
824                 is static;
825         ---Level: Public
826         ---Purpose: Returns the coordinates of the projection of the
827         --          boundary box of all structures in the set <ASet>.
828
829         NumberOfDisplayedStructures ( me )
830                 returns Integer from Standard
831                 is static;
832         ---Level: Internal
833         ---Purpose: Returns number of displayed structures in
834         --          the view <me>.
835
836         Projects ( me : mutable;
837                    AX, AY, AZ           : Real from Standard;
838                    APX, APY, APZ        : out Real from Standard )
839                 is static;
840         ---Level: Public
841         ---Purpose: Returns the coordinates of the projection of the
842         --          3d coordinates <AX>, <AY>, <AZ>.
843
844         Transform ( me )
845                 returns Array2OfReal from TColStd
846                 is static;
847         ---Level: Public
848         ---Purpose: Returns the transformation associated to the view <me>
849         ---C++: return const &
850
851         ViewMapping ( me )
852                 returns ViewMapping from Visual3d
853                 is static;
854         ---Level: Public
855         ---Purpose: Returns the current mapping of the view <me>.
856
857         ViewMappingDefault ( me )
858                 returns ViewMapping from Visual3d
859                 is static;
860         ---Level: Public
861         ---Purpose: Returns the current reset mapping of the view <me>.
862
863         ViewOrientation ( me )
864                 returns ViewOrientation from Visual3d
865                 is static;
866         ---Level: Public
867         ---Purpose: Returns the current orientation of the view <me>.
868
869         ViewOrientationDefault ( me )
870                 returns ViewOrientation from Visual3d
871                 is static;
872         ---Level: Public
873         ---Purpose: Returns the current reset orientation of the view <me>.
874
875         Window ( me )
876                 returns Window from Aspect
877         ---Level: Public
878         ---Purpose: Returns the window associated to the view <me>.
879         --  Warning: Raises ViewDefinitionError if the associated
880         --          window isn't defined.
881         raises ViewDefinitionError from Visual3d is static;
882
883         LightLimit ( me ) returns Integer is static;
884         ---Level: Public
885         ---Purpose: Returns the MAX number of light associated to the view <me>.
886
887         PlaneLimit ( me ) returns Integer is static;
888         ---Level: Public
889         ---Purpose: Returns the MAX number of clipping planes
890         -- associated to the view <me>.
891
892         ViewManager ( me ) returns ViewManager from Visual3d is static;
893         ---Level: Advanced
894         ---Purpose: Returns the view manager handle which manage this view
895
896         ----------------------------
897         -- Category: Private methods
898         ----------------------------
899
900         AcceptDisplay ( me;
901                         AStructure      : Structure from Graphic3d )
902                 returns TypeOfAnswer from Visual3d
903                 is static private;
904         ---Level: Internal
905         ---Purpose: Is it possible to display the structure
906         --          <AStructure> in the view <me> ?
907         ---Category: Private methods
908
909         ReCompute ( me  : mutable;
910                     AStructure  : Structure from Graphic3d );
911         ---Level: Advanced
912         ---Purpose: Computes the new presentation of the
913         --          structure <AStructure> displayed in <me>
914         --          with the type Graphic3d_TOS_COMPUTED.
915         ---Category: Private methods
916
917         Compute ( me    : mutable ) is static private;
918         ---Level: Internal
919         ---Purpose: Computes the new presentation of the
920         --          Structures displayed in <me> with the type
921         --          Graphic3d_TOS_COMPUTED.
922         ---Category: Private methods
923
924         ChangeDisplayPriority ( me              : mutable;
925                                 AStructure      : Structure from Graphic3d;
926                                 OldPriority     : Integer from Standard;
927                                 NewPriority     : Integer from Standard )
928                 is static private;
929         ---Level: Internal
930         ---Purpose: Changes the display priority of the structure <AStructure>.
931         ---Category: Private methods
932
933         Clear ( me              : mutable;
934                 AStructure      : Structure from Graphic3d;
935                 WithDestruction : Boolean from Standard )
936                 is static private;
937         ---Level: Internal
938         ---Purpose: Clears the structure <AStructure> to the view <me>.
939         ---Category: Private methods
940
941         Connect ( me            : mutable;
942                   AMother       : Structure from Graphic3d;
943                   ADaughter     : Structure from Graphic3d )
944                 is static private;
945         ---Level: Internal
946         ---Purpose: Connects the structures <AMother> and <ADaughter>.
947         ---Category: Private methods
948
949         Disconnect ( me         : mutable;
950                      AMother    : Structure from Graphic3d;
951                      ADaughter  : Structure from Graphic3d )
952                 is static private;
953         ---Level: Internal
954         ---Purpose: Disconnects the structures <AMother> and <ADaughter>.
955         ---Category: Private methods
956
957         Display ( me            : mutable;
958                   AStructure    : Structure from Graphic3d )
959                 is static private;
960         ---Level: Internal
961         ---Purpose: Display the structure <AStructure> to the view <me>.
962         ---Category: Private methods
963
964         Display ( me            : mutable;
965                   AStructure    : Structure from Graphic3d;
966                   AnUpdateMode  : TypeOfUpdate from Aspect )
967                 is static private;
968         ---Level: Internal
969         ---Purpose: Display the structure <AStructure> to the view <me>.
970         ---Category: Private methods
971
972         Erase ( me              : mutable;
973                 AStructure      : Structure from Graphic3d )
974                 is static private;
975         ---Level: Internal
976         ---Purpose: Erases the structure <AStructure> from the view <me>.
977         ---Category: Private methods
978
979         Erase ( me              : mutable;
980                 AStructure      : Structure from Graphic3d;
981                 AnUpdateMode    : TypeOfUpdate from Aspect )
982                 is static private;
983         ---Level: Internal
984         ---Purpose: Erases the structure <AStructure> from the view <me>.
985         ---Category: Private methods
986
987         Exploration ( me )
988                 is static;
989         ---Level: Internal
990         ---Purpose: Prints informations about the view <me>.
991         ---Category: Private methods
992
993         Highlight ( me                  : mutable;
994                     AStructure          : Structure from Graphic3d;
995                     AMethod             : TypeOfHighlightMethod from Aspect )
996                 is static private;
997         ---Level: Internal
998         ---Purpose: Highlights the structure <AStructure> in the view <me>.
999         ---Category: Private methods
1000
1001         SetTransform ( me               : mutable;
1002                        AStructure       : Structure from Graphic3d;
1003                        ATrsf            : Array2OfReal from TColStd )
1004                 is static private;
1005         ---Level: Internal
1006         ---Purpose: Transforms the structure <AStructure> in the view <me>.
1007         ---Category: Private methods
1008
1009         UnHighlight ( me                : mutable;
1010                       AStructure        : Structure from Graphic3d )
1011                 is static private;
1012         ---Level: Internal
1013         ---Purpose: Suppress the highlighting on the structure <AStructure>
1014         --          in the view <me>.
1015         ---Category: Private methods
1016
1017         IsComputed ( me;
1018                      AStructure : Structure from Graphic3d )
1019                 returns Integer from Standard
1020                 is static private;
1021         ---Level: Internal
1022         ---Purpose: Returns an index != 0 if the structure <AStructure>
1023         --          have another structure computed for the view <me>.
1024         ---Category: Private methods
1025
1026         Identification ( me )
1027                 returns Integer from Standard
1028                 is static;
1029         ---Level: Internal
1030         ---Purpose: Returns the identification number of the view <me>.
1031         ---Category: Private methods
1032
1033         IsDisplayed ( me;
1034                       AStructure        : Structure from Graphic3d )
1035                 returns Boolean from Standard
1036                 is static private;
1037         ---Level: Internal
1038         ---Purpose: Returns true if the structure <AStructure> is
1039         --          displayed in the view <me>.
1040         ---Category: Private methods
1041
1042         MatrixOfMapping ( me    : mutable )
1043                 returns Array2OfReal from TColStd
1044                 is static; -- private;
1045         ---C++: return const &
1046         ---Level: Internal
1047         ---Purpose: Returns the current matrix of mapping of the view <me>.
1048         --  Warning: Stores the current matrix of mapping.
1049
1050         MatrixOfOrientation ( me        : mutable )
1051                 returns Array2OfReal from TColStd
1052                 is static; -- private;
1053         ---C++: return const &
1054         ---Level: Internal
1055         ---Purpose: Returns the current matrix of orientation of the view <me>.
1056         --  Warning: Stores the current matrix of orientation.
1057
1058         SetRatio ( me   : mutable )
1059                 is static private;
1060         ---Level: Internal
1061         ---Purpose: Modifies the aspect ratio of the view <me> when the
1062         --          associated window is defined or resized.
1063         ---Category: Private methods
1064
1065         UpdateLights ( me       : mutable )
1066                 is static private;
1067         ---Level: Internal
1068         ---Purpose: Updates the lights when the associated window is defined
1069         --          and when the view is activated.
1070         ---Category: Private methods
1071
1072         UpdatePlanes ( me       : mutable )
1073                 is static private;
1074         ---Level: Internal
1075         ---Purpose: Updates the planes when the associated window is defined
1076         --          and when the view is activated.
1077         ---Category: Private methods
1078
1079         UpdateView ( me : mutable )
1080                 is static private;
1081         ---Level: Internal
1082         ---Purpose: Updates the associated c structure before a call to the
1083         --          graphic library.
1084         ---Category: Private methods
1085
1086         -----------------------------
1087         -- Category: Internal methods
1088         -----------------------------
1089
1090         CView ( me )
1091                 returns Address from Standard
1092                 is static;
1093         ---Level: Internal
1094         ---Purpose: Returns the c structure associated to <me>.
1095         ---Category: Private methods
1096
1097         GraphicDriver ( me )
1098                 returns GraphicDriver from Aspect
1099                 is static;
1100         ---Level: Internal
1101         ---Purpose: Returns the associated GraphicDriver.
1102         ---Category: Internal methods
1103
1104         HaveTheSameOwner ( me;
1105                            AStructure   : Structure from Graphic3d )
1106                 returns Integer from Standard
1107                 is static private;
1108         ---Level: Internal
1109         ---Purpose: Returns an index != 0 if the structure <AStructure>
1110         --          have the same owner than another structure in the
1111         --          sequence of the computed structures.
1112         ---Category: Private methods
1113
1114         Plot ( me;
1115                APlotter : Plotter from Graphic3d )
1116                 is static;
1117         ---Level: Internal
1118         ---Purpose: Calls the method Plot for each Structure
1119         --          displayed in <me>.
1120         ---Category: Private methods
1121
1122           Print (me; AnUnderLayer       : Layer from Visual3d;
1123                          AnOverLayer    : Layer from Visual3d;
1124                          hPrnDC: Handle from Aspect;
1125                          showBackground: Boolean;
1126                          filename: CString)
1127           is static;
1128
1129         ---Level: Internal
1130         ---Purpose: print the contents of all layers of the view to the printer.
1131         -- <hPrnDC> : Pass the PrinterDeviceContext (HDC),
1132         -- <showBackground> : When set to FALSE then print the view without background color
1133         -- (background is white)
1134         -- else set to TRUE for printing with current background color.
1135         -- <filename>: If != NULL, then the view will be printed to a file.
1136         --  Warning: Works only under Windows.
1137
1138           Print (me; hPrnDC: Handle from Aspect;
1139                          showBackground: Boolean;
1140                          filename: CString)
1141           is static;
1142
1143         ---Level: Internal
1144         ---Purpose: print the contents of the view to printer.
1145         -- <hPrnDC> : Pass the PrinterDeviceContext (HDC),
1146         -- <showBackground> : When set to FALSE then print the view without background color
1147         -- (background is white)
1148         -- else set to TRUE for printing with current background color.
1149         -- <filename>: If != NULL, then the view will be printed to a file.
1150         --  Warning: Works only under Windows.
1151
1152         SetTransparency ( me : mutable;
1153                 AFlag : Boolean from Standard )
1154                 is static;
1155         ---Level: Advanced
1156         ---Purpose: if <AFlag> is Standard_True then the transparency
1157         --          is managed in the view <me>.
1158         --          Default Standard_False
1159         ---Category: Internal methods
1160
1161         ZBufferIsActivated ( me )
1162                 returns Boolean from Standard
1163                 is static;
1164         ---Level: Advanced
1165         ---Purpose: Returns Standard_True if the ZBuffer is activated
1166         --          in the view <me> and Standard_False if not.
1167         ---Category: Internal methods
1168
1169         SetZBufferActivity ( me : mutable; AnActivity : Integer from Standard )
1170                 is static;
1171         ---Level: Advanced
1172         ---Purpose: Activates the ZBuffer if the integer <AnActivity>
1173         --          is equal to 1.
1174         --          Deactivates the ZBuffer if the integer <AnActivity>
1175         --          is equal to 0.
1176         --          If the integer <AnActivity> is equal to -1 then
1177         --          - the ZBuffer is activated if
1178         --              me->Context ().Visualization () == Visual3d_TOV_SHADING
1179         --          - the ZBuffer is deactivated if
1180         --              me->Context ().Visualization () == Visual3d_TOV_WIREFRAME
1181         ---Category: Internal methods
1182
1183         UnderLayer ( me )
1184                 returns Layer from Visual3d;
1185         ---Level: Internal
1186         ---Purpose: Returns the underlay of the view <me>.
1187         ---Category: Private methods
1188         ---C++: return const &
1189
1190         OverLayer ( me )
1191                 returns Layer from Visual3d;
1192         ---Level: Internal
1193         ---Purpose: Returns the underlay of the view <me>.
1194         ---Category: Private methods
1195         ---C++: return const &
1196
1197         EnableDepthTest( me; enable : Boolean from Standard )
1198         is static;
1199         ---Level: Public
1200         ---Purpose: turns on/off opengl depth
1201
1202         IsDepthTestEnabled( me ) returns Boolean from Standard
1203         is static;
1204         ---Level: Public
1205         ---Purpose: returns current state of the opengl depth testing
1206
1207         ReadDepths( me; x,y,width,height: Integer from Standard;
1208                         buffer : Address )
1209         is static;
1210         ---Purpose: Reads depths of shown pixels of the given rectangle
1211
1212         FBOCreate( me : mutable; width,height: Integer from Standard )
1213                   returns PtrFrameBuffer from Graphic3d
1214         is static;
1215         ---Level: Public
1216         ---Purpose: Generate offscreen FBO in the graphic library
1217
1218         FBORelease( me     : mutable;
1219                     fboPtr : in out PtrFrameBuffer from Graphic3d )
1220         is static;
1221         ---Level: Public
1222         ---Purpose: Remove offscreen FBO from the graphic library
1223
1224         FBOGetDimensions( me                  : mutable;
1225                           fboPtr              : PtrFrameBuffer from Graphic3d;
1226                           width, height       : out Integer from Standard;
1227                           widthMax, heightMax : out Integer from Standard )
1228         is static;
1229         ---Level: Public
1230         ---Purpose: Read offscreen FBO configuration.
1231
1232         FBOChangeViewport( me                  : mutable;
1233                            fboPtr              : in out PtrFrameBuffer from Graphic3d;
1234                            width, height       : Integer from Standard )
1235         is static;
1236         ---Level: Public
1237         ---Purpose: Change offscreen FBO viewport.
1238
1239         BufferDump( me            : mutable;
1240                     buffer        : in out CRawBufferData from Image )
1241                    returns Boolean from Standard
1242         is static;
1243         ---Level: Public
1244         ---Purpose: Dump active rendering buffer into specified memory buffer.
1245
1246         EnableGLLight( me; enable : Boolean from Standard )
1247         is static;
1248         ---Level: Public
1249         ---Purpose: turns on/off opengl lighting, currently used in triedron displaying
1250
1251         IsGLLightEnabled( me ) returns Boolean from Standard
1252         is static;
1253         ---Level: Public
1254         ---Purpose: returns the current state of the gl lighting
1255         --          currently used in triedron displaying
1256
1257         Export( me;
1258                 FileName         : CString from Standard;
1259                 Format           : ExportFormat from Graphic3d;
1260                 SortType         : SortType from Graphic3d = Graphic3d_ST_BSP_Tree;
1261                 Precision        : Real from Standard = 0.005;
1262                 ProgressBarFunc  : Address from Standard = NULL;
1263                 ProgressObject   : Address from Standard = NULL );
1264
1265 fields
1266
1267 --
1268 -- Classe       :       Visual3d_View
1269 --
1270 -- Purpose      :       Declaration of the variables specific to views.
1271 --
1272 -- Reminder     :       A view is defined by:
1273 --                      - a ViewManager
1274 --                      - a ContextView
1275 --                      - a ViewMapping
1276 --                      - a ViewOrientation
1277 --
1278
1279         -- the associated C structure
1280         MyCView                 :       CView from Graphic3d;
1281
1282         -- the context of the view : Aliasing, Depth-Cueing, Lights ...
1283         MyContext               :       ContextView from Visual3d;
1284
1285         -- the current mapping of the view
1286         MyViewMapping           :       ViewMapping from Visual3d;
1287
1288         -- the reset mapping of the view
1289         MyViewMappingReset      :       ViewMapping from Visual3d;
1290
1291         -- the current orientation of the view
1292         MyViewOrientation       :       ViewOrientation from Visual3d;
1293
1294         -- the reset orientation of the view
1295         MyViewOrientationReset  :       ViewOrientation from Visual3d;
1296
1297         -- the associated window
1298         MyWindow                :       Window from Aspect;
1299
1300         -- the transformation
1301         MyTransformation        :       Array2OfReal from TColStd;
1302
1303         -- the matrix management
1304         MyMatrixOfMapping       :       Array2OfReal from TColStd;
1305         MyMatrixOfOrientation   :       Array2OfReal from TColStd;
1306
1307         -- association Structure_COMPUTE and Structure_Computed
1308         MyTOCOMPUTESequence     :       SequenceOfStructure from Graphic3d;
1309         MyCOMPUTEDSequence      :       SequenceOfStructure from Graphic3d;
1310
1311         -- the graphic driver used
1312         MyGraphicDriver         :       GraphicDriver from Graphic3d;
1313
1314         -- the background of the associated window
1315         MyBackground            :       Background from Aspect;
1316
1317         -- the gradient background of the associated window
1318         MyGradientBackground    :       GradientBackground from Aspect;
1319
1320         -- the displayed structures in the view
1321         MyDisplayedStructure    :       MapOfStructure from Graphic3d;
1322
1323         -- the ViewManager associated with the view
1324 --      MyPtrViewManager        :       Address from Standard;
1325         MyPtrViewManager        :       ViewManagerPtr from Visual3d;
1326
1327         -- Booleans
1328         MyCBitFields            :       CBitFields8 from Graphic3d;
1329
1330 friends
1331
1332         class ViewManager from Visual3d
1333
1334 end View;