0027900: Coding rules - drop redundant Name parameter from V3d_Viewer constructor
[occt.git] / src / V3d / V3d_Viewer.hxx
1 // Created on: 1992-01-17
2 // Created by: GG
3 // Copyright (c) 1992-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 //
6 // This file is part of Open CASCADE Technology software library.
7 //
8 // This library is free software; you can redistribute it and/or modify it 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 #ifndef _V3d_Viewer_HeaderFile
18 #define _V3d_Viewer_HeaderFile
19
20 #include <Aspect_Background.hxx>
21 #include <Aspect_GenId.hxx>
22 #include <Aspect_GradientBackground.hxx>
23 #include <Aspect_GradientFillMethod.hxx>
24 #include <Aspect_GridDrawMode.hxx>
25 #include <Aspect_GridType.hxx>
26
27 #include <gp_Ax3.hxx>
28 #include <Graphic3d_StructureManager.hxx>
29 #include <Graphic3d_Vertex.hxx>
30 #include <Graphic3d_ZLayerSettings.hxx>
31
32 #include <Standard.hxx>
33 #include <Standard_Boolean.hxx>
34 #include <Standard_CString.hxx>
35 #include <Standard_ExtString.hxx>
36 #include <Standard_Integer.hxx>
37 #include <Standard_Real.hxx>
38 #include <Standard_Type.hxx>
39
40 #include <TColStd_MapOfInteger.hxx>
41 #include <TColStd_ListIteratorOfListOfTransient.hxx>
42 #include <TColStd_SequenceOfInteger.hxx>
43 #include <TCollection_AsciiString.hxx>
44 #include <TCollection_ExtendedString.hxx>
45
46 #include <V3d_ListOfLight.hxx>
47 #include <V3d_ListOfView.hxx>
48 #include <V3d_TypeOfOrientation.hxx>
49 #include <V3d_TypeOfShadingModel.hxx>
50 #include <V3d_TypeOfUpdate.hxx>
51 #include <V3d_TypeOfView.hxx>
52 #include <V3d_TypeOfVisualization.hxx>
53
54 #include <Quantity_Color.hxx>
55 #include <Quantity_Length.hxx>
56 #include <Quantity_Parameter.hxx>
57 #include <Quantity_PlaneAngle.hxx>
58 #include <Quantity_TypeOfColor.hxx>
59
60 class Aspect_Grid;
61 class Graphic3d_AspectMarker3d;
62 class Graphic3d_GraphicDriver;
63 class Graphic3d_Group;
64 class Graphic3d_Structure;
65 class V3d_BadValue;
66 class V3d_CircularGrid;
67 class V3d_Light;
68 class V3d_RectangularGrid;
69 class V3d_View;
70 class Quantity_Color;
71
72 //! Defines services on Viewer type objects.
73 //! The methods of this class allow editing and
74 //! interrogation of the parameters linked to the viewer
75 //! its friend classes (View,light,plane).
76 class V3d_Viewer : public Standard_Transient
77 {
78   friend class V3d_View;
79   friend class V3d_Light;
80   DEFINE_STANDARD_RTTIEXT(V3d_Viewer, Standard_Transient)
81 public:
82
83   //! Create a Viewer with the given graphic driver and with default parameters:
84   //! - View orientation: V3d_XposYnegZpos
85   //! - View background: Quantity_NOC_GRAY30
86   //! - Shading model: V3d_GOURAUD
87   Standard_EXPORT V3d_Viewer (const Handle(Graphic3d_GraphicDriver)& theDriver);
88
89   //! Returns True if One View more can be defined in this Viewer.
90   Standard_EXPORT Standard_Boolean IfMoreViews() const;
91
92   //! Creates a view in the viewer according to its default parameters.
93   Standard_EXPORT Handle(V3d_View) CreateView();
94   
95   //! Activates all of the views of a viewer attached to a window.
96   Standard_EXPORT void SetViewOn();
97   
98   //! Activates a particular view in the Viewer.
99   //! Must be call if the Window attached to the view has been Deiconified.
100   Standard_EXPORT void SetViewOn (const Handle(V3d_View)& theView);
101
102   //! Deactivates all the views of a Viewer
103   //! attached to a window.
104   Standard_EXPORT void SetViewOff();
105   
106   //! Deactivates a particular view in the Viewer.
107   //! Must be call if the Window attached to the view
108   //! has been Iconified .
109   Standard_EXPORT void SetViewOff (const Handle(V3d_View)& theView);
110   
111   //! Deprecated, Redraw() should be used instead.
112   void Update() { Redraw(); }
113
114   //! Redraws all the views of the Viewer even if no
115   //! modification has taken place. Must be called if
116   //! all the views of the Viewer are exposed, as for
117   //! example in a global DeIconification.
118   Standard_EXPORT void Redraw() const;
119   
120   //! Updates layer of immediate presentations.
121   Standard_EXPORT void RedrawImmediate() const;
122   
123   //! Invalidates viewer content but does not redraw it.
124   Standard_EXPORT void Invalidate() const;
125   
126   //! Suppresses the Viewer.
127   Standard_EXPORT void Remove();
128
129   //! Return Graphic Driver instance.
130   const Handle(Graphic3d_GraphicDriver)& Driver() const { return myDriver; }
131
132   //! Returns the structure manager associated to this viewer.
133   Handle(Graphic3d_StructureManager) StructureManager() const { return myStructureManager; }
134
135   //! Return default Rendering Parameters.
136   //! By default these parameters are set in a new V3d_View.
137   const Graphic3d_RenderingParams& DefaultRenderingParams() const { return myDefaultRenderingParams; }
138
139   //! Set default Rendering Parameters.
140   void SetDefaultRenderingParams (const Graphic3d_RenderingParams& theParams) { myDefaultRenderingParams = theParams; }
141
142   //! Defines the default background colour of views
143   //! attached to the viewer by supplying the name of the
144   //! colour under the form Quantity_NOC_xxxx .
145   void SetDefaultBackgroundColor (const Quantity_NameOfColor theName) { myBackground.SetColor (Quantity_Color (theName)); }
146
147   //! Defines the default background colour of views
148   //! attached to the viewer by supplying the color object
149   void SetDefaultBackgroundColor (const Quantity_Color& theColor) { myBackground.SetColor (theColor); }
150
151   //! Returns the gradient background of the view.
152   const Aspect_GradientBackground& GetGradientBackground() const { return myGradientBackground; }
153
154   //! Defines the default gradient background colours of view
155   //! attached to the viewer by supplying the name of the
156   //! colours under the form Quantity_NOC_xxxx .
157   void SetDefaultBgGradientColors (const Quantity_NameOfColor theName1,
158                                    const Quantity_NameOfColor theName2,
159                                    const Aspect_GradientFillMethod theFillStyle = Aspect_GFM_HOR)
160   {
161     myGradientBackground.SetColors (Quantity_Color (theName1), Quantity_Color (theName2), theFillStyle);
162   }
163   
164   //! Defines the default gradient background colours of views
165   //! attached to the viewer by supplying the colour objects
166   void SetDefaultBgGradientColors (const Quantity_Color& theColor1,
167                                    const Quantity_Color& theColor2,
168                                    const Aspect_GradientFillMethod theFillStyle = Aspect_GFM_HOR)
169   {
170     myGradientBackground.SetColors (theColor1, theColor2, theFillStyle);
171   }
172
173   //! Returns the default size of the view.
174   Standard_Real DefaultViewSize() const { return myViewSize; }
175
176   //! Gives a default size for the creation of views of the viewer.
177   Standard_EXPORT void SetDefaultViewSize (const Standard_Real theSize);
178
179   //! Returns the default Projection.
180   V3d_TypeOfOrientation DefaultViewProj() const { return myViewProj; }
181
182   //! Sets the default projection for creating views in the viewer.
183   void SetDefaultViewProj (const V3d_TypeOfOrientation theOrientation) { myViewProj = theOrientation; }
184
185   //! Returns the default type of Visualization.
186   V3d_TypeOfVisualization DefaultVisualization() const { return myVisualization; }
187
188   //! Gives the default visualization mode.
189   void SetDefaultVisualization (const V3d_TypeOfVisualization theType) { myVisualization = theType; }
190
191   //! Returns the default type of Shading
192   V3d_TypeOfShadingModel DefaultShadingModel() const { return myShadingModel; }
193
194   //! Gives the default type of SHADING.
195   void SetDefaultShadingModel (const V3d_TypeOfShadingModel theType) { myShadingModel = theType; }
196
197   //! Returns the regeneration mode of views in the viewer.
198   Standard_EXPORT V3d_TypeOfUpdate UpdateMode() const;
199
200   //! Defines the mode of regenerating the views making
201   //! up the viewer. This can be immediate <ASAP> or
202   //! deferred <WAIT>. In this latter case, the views are
203   //! updated when the method Update(me) is called.
204   Standard_EXPORT void SetUpdateMode (const V3d_TypeOfUpdate theMode);
205   
206   void SetDefaultTypeOfView (const V3d_TypeOfView theType) { myDefaultTypeOfView = theType; }
207
208   //! Returns the default background colour object.
209   Quantity_Color DefaultBackgroundColor() const { return myBackground.Color(); }
210
211   //! Returns the gradient background colour objects of the view.
212   void DefaultBgGradientColors (Quantity_Color& theColor1, Quantity_Color& theColor2) const { myGradientBackground.Colors (theColor1, theColor2); }
213
214   //! Return all Z layer ids in sequence ordered by overlay level from lowest layer to highest ( foreground ).
215   //! The first layer ID in sequence is the default layer that can't be removed.
216   Standard_EXPORT void GetAllZLayers (TColStd_SequenceOfInteger& theLayerSeq) const;
217
218   //! Add a new top-level Z layer to all managed views and get its ID as <theLayerId> value.
219   //! The Z layers are controlled entirely by viewer, it is not possible to add a layer to a particular view.
220   //! The method returns Standard_False if the layer can not be created.
221   //! The layer mechanism allows to display structures in higher layers in overlay of structures in lower layers.
222   Standard_EXPORT Standard_Boolean AddZLayer (Standard_Integer& theLayerId);
223
224   //! Remove Z layer with ID <theLayerId>.
225   //! Method returns Standard_False if the layer can not be removed or doesn't exists.
226   //! By default, there are always default bottom-level layer that can't be removed.
227   Standard_EXPORT Standard_Boolean RemoveZLayer (const Standard_Integer theLayerId);
228
229   //! Returns the settings of a single Z layer.
230   Standard_EXPORT Graphic3d_ZLayerSettings ZLayerSettings (const Standard_Integer theLayerId);
231
232   //! Sets the settings for a single Z layer.
233   Standard_EXPORT void SetZLayerSettings (const Standard_Integer theLayerId, const Graphic3d_ZLayerSettings& theSettings);
234
235 public:
236
237   //! Return an iterator for active views.
238   V3d_ListOfViewIterator ActiveViewIterator() const { return V3d_ListOfViewIterator (myActiveViews); }
239
240   //! Initializes an internal iterator on the active views.
241   void InitActiveViews() { myActiveViewsIterator.Initialize (myActiveViews); }
242
243   //! Returns true if there are more active view(s) to return.
244   Standard_Boolean MoreActiveViews() const { return myActiveViewsIterator.More(); }
245
246   //! Go to the next active view (if there is not, ActiveView will raise an exception)
247   void NextActiveViews() { if (!myActiveViews.IsEmpty()) myActiveViewsIterator.Next(); }
248   
249   const Handle(V3d_View)& ActiveView() const { return myActiveViewsIterator.Value(); }
250   
251   //! returns true if there is only one active view.
252   Standard_Boolean LastActiveView() const { return myActiveViews.Extent() == 1; }
253
254 public:
255
256   //! Return an iterator for defined views.
257   V3d_ListOfViewIterator DefinedViewIterator() const { return V3d_ListOfViewIterator (myDefinedViews); }
258
259   //! Initializes an internal iterator on the Defined views.
260   void InitDefinedViews() { myDefinedViewsIterator.Initialize (myDefinedViews); }
261
262   //! returns true if there are more Defined view(s) to return.
263   Standard_Boolean MoreDefinedViews() const { return myDefinedViewsIterator.More(); }
264
265   //! Go to the next Defined view (if there is not, DefinedView will raise an exception)
266   void NextDefinedViews() { if (!myDefinedViews.IsEmpty()) myDefinedViewsIterator.Next(); }
267
268   const Handle(V3d_View)& DefinedView() const { return myDefinedViewsIterator.Value(); }
269
270 public: //! @name lights management
271
272   //! Defines default lights:
273   //!  positional-light 0.3 0. 0.
274   //!  directional-light V3d_XnegYposZpos
275   //!  directional-light V3d_XnegYneg
276   //!  ambient-light
277   Standard_EXPORT void SetDefaultLights();
278
279   //! Activates MyLight in the viewer.
280   Standard_EXPORT void SetLightOn (const Handle(V3d_Light)& theLight);
281   
282   //! Activates all the lights defined in this viewer.
283   Standard_EXPORT void SetLightOn();
284   
285   //! Deactivates MyLight in this viewer.
286   Standard_EXPORT void SetLightOff (const Handle(V3d_Light)& theLight);
287   
288   //! Deactivate all the Lights defined in this viewer.
289   Standard_EXPORT void SetLightOff();
290   
291   //! Delete Light in Sequence Of Lights.
292   Standard_EXPORT void DelLight (const Handle(V3d_Light)& theLight);
293   
294   //! Updates the lights of all the views of a viewer.
295   Standard_EXPORT void UpdateLights();
296
297   Standard_EXPORT Standard_Boolean IsGlobalLight (const Handle(V3d_Light)& TheLight) const;
298
299   //! Return an iterator for defined lights.
300   V3d_ListOfLightIterator ActiveLightIterator() const { return V3d_ListOfLightIterator (myActiveLights); }
301
302   //! Initializes an internal iteratator on the active Lights.
303   void InitActiveLights() { myActiveLightsIterator.Initialize (myActiveLights); }
304
305   //! returns true if there are more active Light(s) to return.
306   Standard_Boolean MoreActiveLights() const { return myActiveLightsIterator.More(); }
307
308   //! Go to the next active Light (if there is not, ActiveLight() will raise an exception)
309   void NextActiveLights() { myActiveLightsIterator.Next(); }
310
311   const Handle(V3d_Light)& ActiveLight() const { return myActiveLightsIterator.Value(); }
312
313 public:
314
315   //! Return an iterator for defined lights.
316   V3d_ListOfLightIterator DefinedLightIterator() const { return V3d_ListOfLightIterator (myDefinedLights); }
317
318   //! Initializes an internal iterattor on the Defined Lights.
319   void InitDefinedLights() { myDefinedLightsIterator.Initialize (myDefinedLights); }
320   
321   //! Returns true if there are more Defined Light(s) to return.
322   Standard_Boolean MoreDefinedLights() const { return myDefinedLightsIterator.More(); }
323
324   //! Go to the next Defined Light (if there is not, DefinedLight() will raise an exception)
325   void NextDefinedLights() { if (!myDefinedLights.IsEmpty()) myDefinedLightsIterator.Next(); }
326
327   const Handle(V3d_Light)& DefinedLight() const { return myDefinedLightsIterator.Value(); }
328
329 public: //! @name objects management
330
331   //! Erase all Objects in All the views.
332   Standard_EXPORT void Erase() const;
333
334   //! UnHighlight all Objects in All the views.
335   Standard_EXPORT void UnHighlight() const;
336
337 public:
338
339   //! returns true if the computed mode can be used.
340   Standard_Boolean ComputedMode() const { return myComputedMode; }
341
342   //! Set if the computed mode can be used.
343   void SetComputedMode (const Standard_Boolean theMode) { myComputedMode = theMode; }
344
345   //! returns true if by default the computed mode must be used.
346   Standard_Boolean DefaultComputedMode() const { return myDefaultComputedMode; }
347
348   //! Set if by default the computed mode must be used.
349   void SetDefaultComputedMode (const Standard_Boolean theMode) { myDefaultComputedMode = theMode; }
350
351 public: //! @name privileged plane management
352
353   Standard_EXPORT gp_Ax3 PrivilegedPlane() const;
354
355   Standard_EXPORT void SetPrivilegedPlane (const gp_Ax3& thePlane);
356
357   Standard_EXPORT void DisplayPrivilegedPlane (const Standard_Boolean theOnOff, const Quantity_Length theSize = 1);
358
359 public: //! @name grid management
360
361   //! Activates the grid in all views of <me>.
362   Standard_EXPORT void ActivateGrid (const Aspect_GridType aGridType, const Aspect_GridDrawMode aGridDrawMode);
363   
364   //! Deactivates the grid in all views of <me>.
365   Standard_EXPORT void DeactivateGrid();
366   
367   //! Show/Don't show grid echo to the hit point.
368   //! If TRUE,the grid echo will be shown at ConvertToGrid() time.
369   Standard_EXPORT void SetGridEcho (const Standard_Boolean showGrid = Standard_True);
370   
371   //! Show grid echo <aMarker> to the hit point.
372   //! Warning: When the grid echo marker is not set,
373   //! a default marker is build with the attributes:
374   //! marker type : Aspect_TOM_STAR
375   //! marker color : Quantity_NOC_GRAY90
376   //! marker size : 3.0
377   Standard_EXPORT void SetGridEcho (const Handle(Graphic3d_AspectMarker3d)& aMarker);
378   
379   //! Returns TRUE when grid echo must be displayed
380   //! at hit point.
381   Standard_EXPORT Standard_Boolean GridEcho() const;
382   
383   //! Returns Standard_True if a grid is activated in <me>.
384   Standard_EXPORT Standard_Boolean IsActive() const;
385   
386   //! Returns the defined grid in <me>.
387   Standard_EXPORT Handle(Aspect_Grid) Grid() const;
388   
389   //! Returns the current grid type defined in <me>.
390   Standard_EXPORT Aspect_GridType GridType() const;
391   
392   //! Returns the current grid draw mode defined in <me>.
393   Standard_EXPORT Aspect_GridDrawMode GridDrawMode() const;
394   
395   //! Returns the definition of the rectangular grid.
396   Standard_EXPORT void RectangularGridValues (Quantity_Length& XOrigin, Quantity_Length& YOrigin, Quantity_Length& XStep, Quantity_Length& YStep, Quantity_PlaneAngle& RotationAngle) const;
397   
398   //! Sets the definition of the rectangular grid.
399   //! <XOrigin>, <YOrigin> defines the origin of the grid.
400   //! <XStep> defines the interval between 2 vertical lines.
401   //! <YStep> defines the interval between 2 horizontal lines.
402   //! <RotationAngle> defines the rotation angle of the grid.
403   Standard_EXPORT void SetRectangularGridValues (const Quantity_Length XOrigin, const Quantity_Length YOrigin, const Quantity_Length XStep, const Quantity_Length YStep, const Quantity_PlaneAngle RotationAngle);
404   
405   //! Returns the definition of the circular grid.
406   Standard_EXPORT void CircularGridValues (Quantity_Length& XOrigin, Quantity_Length& YOrigin, Quantity_Length& RadiusStep, Standard_Integer& DivisionNumber, Quantity_PlaneAngle& RotationAngle) const;
407   
408   //! Sets the definition of the circular grid.
409   //! <XOrigin>, <YOrigin> defines the origin of the grid.
410   //! <RadiusStep> defines the interval between 2 circles.
411   //! <DivisionNumber> defines the section number of one half circle.
412   //! <RotationAngle> defines the rotation angle of the grid.
413   Standard_EXPORT void SetCircularGridValues (const Quantity_Length XOrigin, const Quantity_Length YOrigin, const Quantity_Length RadiusStep, const Standard_Integer DivisionNumber, const Quantity_PlaneAngle RotationAngle);
414   
415   //! Returns the location and the size of the grid.
416   Standard_EXPORT void CircularGridGraphicValues (Quantity_Length& Radius, Quantity_Length& OffSet) const;
417   
418   //! Sets the location and the size of the grid.
419   //! <XSize> defines the width of the grid.
420   //! <YSize> defines the height of the grid.
421   //! <OffSet> defines the displacement along the plane normal.
422   Standard_EXPORT void SetCircularGridGraphicValues (const Quantity_Length Radius, const Quantity_Length OffSet);
423   
424   //! Returns the location and the size of the grid.
425   Standard_EXPORT void RectangularGridGraphicValues (Quantity_Length& XSize, Quantity_Length& YSize, Quantity_Length& OffSet) const;
426   
427   //! Sets the location and the size of the grid.
428   //! <XSize> defines the width of the grid.
429   //! <YSize> defines the height of the grid.
430   //! <OffSet> defines the displacement along the plane normal.
431   Standard_EXPORT void SetRectangularGridGraphicValues (const Quantity_Length XSize, const Quantity_Length YSize, const Quantity_Length OffSet);
432   
433   //! Display grid echo at requested point in the view.
434   Standard_EXPORT void ShowGridEcho (const Handle(V3d_View)& theView, const Graphic3d_Vertex& thePoint);
435
436   //! Temporarly hide grid echo.
437   Standard_EXPORT void HideGridEcho (const Handle(V3d_View)& theView);
438
439 public: //! @name deprecated methods
440
441   Standard_DEPRECATED("This constructor is deprecated")
442   Standard_EXPORT V3d_Viewer (const Handle(Graphic3d_GraphicDriver)& theDriver,
443                               const Standard_ExtString theName,
444                               const Standard_CString theDomain = "",
445                               const Quantity_Length theViewSize = 1000.0,
446                               const V3d_TypeOfOrientation theViewProj = V3d_XposYnegZpos,
447                               const Quantity_NameOfColor theViewBackground = Quantity_NOC_GRAY30,
448                               const V3d_TypeOfVisualization theVisualization = V3d_ZBUFFER,
449                               const V3d_TypeOfShadingModel theShadingModel = V3d_GOURAUD,
450                               const V3d_TypeOfUpdate theUpdateMode = V3d_WAIT,
451                               const Standard_Boolean theComputedMode = Standard_True,
452                               const Standard_Boolean theDefaultComputedMode = Standard_True);
453
454   //! Defines the default base colour of views attached
455   //! to the Viewer by supplying the type of colour
456   //! definition and the three component values.
457   Standard_DEPRECATED("This method is deprecated - SetDefaultBackgroundColor() taking Quantity_Color should be used instead")
458   void SetDefaultBackgroundColor (const Quantity_TypeOfColor theType,
459                                   const Quantity_Parameter theV1,
460                                   const Quantity_Parameter theV2,
461                                   const Quantity_Parameter theV3)
462   {
463     Standard_Real aV1 = theV1;
464     Standard_Real aV2 = theV2;
465     Standard_Real aV3 = theV3;
466     if (aV1 < 0.0) aV1 = 0.0; else if (aV1 > 1.0) aV1 = 1.0;
467     if (aV2 < 0.0) aV2 = 0.0; else if (aV2 > 1.0) aV2 = 1.0;
468     if (aV3 < 0.0) aV3 = 0.0; else if (aV3 > 1.0) aV3 = 1.0;
469     SetDefaultBackgroundColor (Quantity_Color (aV1, aV2, aV3, theType));
470   }
471
472   Standard_DEPRECATED("This method is deprecated - DefaultBackgroundColor() without arguments should be used instead")
473   void DefaultBackgroundColor (const Quantity_TypeOfColor theType, Quantity_Parameter& theV1, Quantity_Parameter& theV2, Quantity_Parameter& theV3) const
474   {
475     Quantity_Color aColor = DefaultBackgroundColor();
476     aColor.Values (theV1, theV2, theV3, theType) ;
477   }
478
479 private:
480
481   //! Returns the default background colour.
482   const Aspect_Background& GetBackgroundColor() const { return myBackground; }
483
484   //! Adds View in Sequence Of Views.
485   Standard_EXPORT void AddView (const Handle(V3d_View)& theView);
486   
487   //! Delete View in Sequence Of Views.
488   Standard_EXPORT void DelView (const Handle(V3d_View)& theView);
489   
490   //! Adds Light in Sequence Of Lights.
491   Standard_EXPORT void AddLight (const Handle(V3d_Light)& theLight);
492   
493 private:
494
495   Handle(Graphic3d_GraphicDriver) myDriver;
496   Handle(Graphic3d_StructureManager) myStructureManager;
497   TColStd_MapOfInteger myLayerIds;
498   Aspect_GenId myZLayerGenId;
499
500   V3d_ListOfView  myDefinedViews;
501   V3d_ListOfView  myActiveViews;
502   V3d_ListOfLight myDefinedLights;
503   V3d_ListOfLight myActiveLights;
504
505   Aspect_Background myBackground;
506   Aspect_GradientBackground myGradientBackground;
507   Standard_Real myViewSize;
508   V3d_TypeOfOrientation myViewProj;
509   V3d_TypeOfVisualization myVisualization;
510   V3d_TypeOfShadingModel myShadingModel;
511   V3d_TypeOfView myDefaultTypeOfView;
512   Graphic3d_RenderingParams myDefaultRenderingParams;
513
514   V3d_ListOfView::Iterator  myActiveViewsIterator;
515   V3d_ListOfView::Iterator  myDefinedViewsIterator;
516   V3d_ListOfLight::Iterator myActiveLightsIterator;
517   V3d_ListOfLight::Iterator myDefinedLightsIterator;
518
519   Standard_Boolean myComputedMode;
520   Standard_Boolean myDefaultComputedMode;
521
522   gp_Ax3 myPrivilegedPlane;
523   Handle(Graphic3d_Structure) myPlaneStructure;
524   Standard_Boolean myDisplayPlane;
525   Quantity_Length myDisplayPlaneLength;
526
527   Handle(V3d_RectangularGrid) myRGrid;
528   Handle(V3d_CircularGrid) myCGrid;
529   Aspect_GridType myGridType;
530   Standard_Boolean myGridEcho;
531   Handle(Graphic3d_Structure) myGridEchoStructure;
532   Handle(Graphic3d_Group) myGridEchoGroup;
533   Handle(Graphic3d_AspectMarker3d) myGridEchoAspect;
534   Graphic3d_Vertex myGridEchoLastVert;
535
536 };
537
538 DEFINE_STANDARD_HANDLE(V3d_Viewer, Standard_Transient)
539
540 #endif // _V3d_Viewer_HeaderFile