summaryrefslogtreecommitdiff
path: root/inc/V3d_Viewer.hxx
blob: df81ced6c618c2b77b5de06be63e6b5bb7edbb00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _V3d_Viewer_HeaderFile
#define _V3d_Viewer_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_V3d_Viewer_HeaderFile
#include <Handle_V3d_Viewer.hxx>
#endif

#ifndef _Handle_Visual3d_ViewManager_HeaderFile
#include <Handle_Visual3d_ViewManager.hxx>
#endif
#ifndef _V3d_ListOfTransient_HeaderFile
#include <V3d_ListOfTransient.hxx>
#endif
#ifndef _Aspect_Background_HeaderFile
#include <Aspect_Background.hxx>
#endif
#ifndef _Aspect_GradientBackground_HeaderFile
#include <Aspect_GradientBackground.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _V3d_TypeOfOrientation_HeaderFile
#include <V3d_TypeOfOrientation.hxx>
#endif
#ifndef _V3d_TypeOfVisualization_HeaderFile
#include <V3d_TypeOfVisualization.hxx>
#endif
#ifndef _V3d_TypeOfShadingModel_HeaderFile
#include <V3d_TypeOfShadingModel.hxx>
#endif
#ifndef _V3d_TypeOfSurfaceDetail_HeaderFile
#include <V3d_TypeOfSurfaceDetail.hxx>
#endif
#ifndef _Quantity_PlaneAngle_HeaderFile
#include <Quantity_PlaneAngle.hxx>
#endif
#ifndef _V3d_TypeOfView_HeaderFile
#include <V3d_TypeOfView.hxx>
#endif
#ifndef _Handle_V3d_OrthographicView_HeaderFile
#include <Handle_V3d_OrthographicView.hxx>
#endif
#ifndef _Handle_V3d_PerspectiveView_HeaderFile
#include <Handle_V3d_PerspectiveView.hxx>
#endif
#ifndef _Handle_V3d_Light_HeaderFile
#include <Handle_V3d_Light.hxx>
#endif
#ifndef _TColStd_ListIteratorOfListOfTransient_HeaderFile
#include <TColStd_ListIteratorOfListOfTransient.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _gp_Ax3_HeaderFile
#include <gp_Ax3.hxx>
#endif
#ifndef _Handle_Graphic3d_Structure_HeaderFile
#include <Handle_Graphic3d_Structure.hxx>
#endif
#ifndef _Quantity_Length_HeaderFile
#include <Quantity_Length.hxx>
#endif
#ifndef _Handle_V3d_RectangularGrid_HeaderFile
#include <Handle_V3d_RectangularGrid.hxx>
#endif
#ifndef _Handle_V3d_CircularGrid_HeaderFile
#include <Handle_V3d_CircularGrid.hxx>
#endif
#ifndef _Aspect_GridType_HeaderFile
#include <Aspect_GridType.hxx>
#endif
#ifndef _Handle_Graphic3d_Group_HeaderFile
#include <Handle_Graphic3d_Group.hxx>
#endif
#ifndef _Handle_Graphic3d_AspectMarker3d_HeaderFile
#include <Handle_Graphic3d_AspectMarker3d.hxx>
#endif
#ifndef _Viewer_Viewer_HeaderFile
#include <Viewer_Viewer.hxx>
#endif
#ifndef _Handle_V3d_Viewer_HeaderFile
#include <Handle_V3d_Viewer.hxx>
#endif
#ifndef _V3d_HeaderFile
#include <V3d.hxx>
#endif
#ifndef _Handle_Aspect_GraphicDevice_HeaderFile
#include <Handle_Aspect_GraphicDevice.hxx>
#endif
#ifndef _Standard_ExtString_HeaderFile
#include <Standard_ExtString.hxx>
#endif
#ifndef _Standard_CString_HeaderFile
#include <Standard_CString.hxx>
#endif
#ifndef _Quantity_NameOfColor_HeaderFile
#include <Quantity_NameOfColor.hxx>
#endif
#ifndef _V3d_TypeOfUpdate_HeaderFile
#include <V3d_TypeOfUpdate.hxx>
#endif
#ifndef _Handle_V3d_View_HeaderFile
#include <Handle_V3d_View.hxx>
#endif
#ifndef _Quantity_TypeOfColor_HeaderFile
#include <Quantity_TypeOfColor.hxx>
#endif
#ifndef _Quantity_Parameter_HeaderFile
#include <Quantity_Parameter.hxx>
#endif
#ifndef _Aspect_GradientFillMethod_HeaderFile
#include <Aspect_GradientFillMethod.hxx>
#endif
#ifndef _Handle_V3d_Plane_HeaderFile
#include <Handle_V3d_Plane.hxx>
#endif
#ifndef _Aspect_GridDrawMode_HeaderFile
#include <Aspect_GridDrawMode.hxx>
#endif
#ifndef _Handle_Aspect_Grid_HeaderFile
#include <Handle_Aspect_Grid.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
class Visual3d_ViewManager;
class V3d_OrthographicView;
class V3d_PerspectiveView;
class V3d_Light;
class Graphic3d_Structure;
class V3d_RectangularGrid;
class V3d_CircularGrid;
class Graphic3d_Group;
class Graphic3d_AspectMarker3d;
class Viewer_BadValue;
class V3d_View;
class V3d_Plane;
class Aspect_GraphicDevice;
class Quantity_Color;
class gp_Ax3;
class Aspect_Grid;
class Aspect_Background;
class Aspect_GradientBackground;
class Graphic3d_Vertex;


//! Defines services on Viewer type objects. <br>
//!            The methods of this class allow editing and <br>
//!            interrogation of the parameters linked to the viewer <br>
//!            its friend classes (View,light,plane). <br>
class V3d_Viewer : public Viewer_Viewer {

public:

  //! Create a Viewer on the given device with the given parameters  or <br>
//!          with their default values. <br>//!        If the size of the view is <= 0 <br>
//!      if ComputedMode is false, only the degenerate mode will be used. <br>
  Standard_EXPORT   V3d_Viewer(const Handle(Aspect_GraphicDevice)& Device,const Standard_ExtString aName,const Standard_CString aDomain = "",const Quantity_Length ViewSize = 1000.0,const V3d_TypeOfOrientation ViewProj = V3d_XposYnegZpos,const Quantity_NameOfColor ViewBackground = Quantity_NOC_GRAY30,const V3d_TypeOfVisualization Visualization = V3d_ZBUFFER,const V3d_TypeOfShadingModel ShadingModel = V3d_GOURAUD,const V3d_TypeOfUpdate UpdateMode = V3d_WAIT,const Standard_Boolean ComputedMode = Standard_True,const Standard_Boolean DefaultComputedMode = Standard_True,const V3d_TypeOfSurfaceDetail SurfaceDetail = V3d_TEX_NONE);
  //! creates a view in the viewer according to its <br>
//!          default parameters. <br>
  Standard_EXPORT     Handle_V3d_View CreateView() ;
  
  Standard_EXPORT     Handle_V3d_OrthographicView DefaultOrthographicView() ;
  
  Standard_EXPORT     Handle_V3d_PerspectiveView DefaultPerspectiveView() ;
  //! Activates all of the views of a viewer attached <br>
//!            to a window. <br>
  Standard_EXPORT     void SetViewOn() ;
  //! Activates a particular view in the Viewer . <br>
//!            Must be call if the Window attached to the view <br>
//!            has been Deiconified . <br>
  Standard_EXPORT     void SetViewOn(const Handle(V3d_View)& View) ;
  //! Deactivates all the views of a Viewer <br>
//!            attached to a window. <br>
  Standard_EXPORT     void SetViewOff() ;
  //! Deactivates a particular view in the Viewer. <br>
//!            Must be call if the Window attached to the view <br>
//!            has been Iconified . <br>
  Standard_EXPORT     void SetViewOff(const Handle(V3d_View)& View) ;
  //! Updates the display of all the views of a viewer. <br>
//!            Must be called when the views must be updated <br>
//!            simultaneously while the Update mode is deferred (WAIT). <br>
  Standard_EXPORT     void Update() ;
  //! Updates the lights of all the views of a viewer. <br>
  Standard_EXPORT     void UpdateLights() ;
  //! Redraws all the views of the Viewer even if no <br>
//!            modification has taken place. Must be called if <br>
//!            all the views of the Viewer are exposed, as for <br>
//!           example in a global DeIconification. <br>
  Standard_EXPORT     void Redraw() const;
  //! Suppresses the Viewer. <br>
  Standard_EXPORT     void Remove() ;
  //! Erase all Objects in All the views. <br>
  Standard_EXPORT     void Erase() const;
  //! UnHighlight all Objects in All the views. <br>
  Standard_EXPORT     void UnHighlight() const;
  //! Defines the default base colour of views attached <br>
//!            to the Viewer by supplying the type of colour <br>
//!            definition and the three component values.. <br>
  Standard_EXPORT     void SetDefaultBackgroundColor(const Quantity_TypeOfColor Type,const Quantity_Parameter V1,const Quantity_Parameter V2,const Quantity_Parameter V3) ;
  //! Defines the default background colour of views <br>
//!            attached to the viewer by supplying the name of the <br>
//!            colour under the form Quantity_NOC_xxxx . <br>
  Standard_EXPORT     void SetDefaultBackgroundColor(const Quantity_NameOfColor Name) ;
  //! Defines the default background colour of views <br>
//!            attached to the viewer by supplying the color object <br>
  Standard_EXPORT     void SetDefaultBackgroundColor(const Quantity_Color& Color) ;
  //! Defines the default gradient background colours of view <br>
//!            attached to the viewer by supplying the name of the <br>
//!            colours under the form Quantity_NOC_xxxx . <br>
  Standard_EXPORT     void SetDefaultBgGradientColors(const Quantity_NameOfColor Name1,const Quantity_NameOfColor Name2,const Aspect_GradientFillMethod FillStyle = Aspect_GFM_HOR) ;
  //! Defines the default gradient background colours of views <br>
//!            attached to the viewer by supplying the colour objects <br>
  Standard_EXPORT     void SetDefaultBgGradientColors(const Quantity_Color& Color1,const Quantity_Color& Color2,const Aspect_GradientFillMethod FillStyle = Aspect_GFM_HOR) ;
  //! Gives a default size for the creation of views of <br>
//!            the viewer. <br>
  Standard_EXPORT     void SetDefaultViewSize(const Quantity_Length Size) ;
  //! Gives the default projection for creating views <br>
//!            in the viewer. <br>
  Standard_EXPORT     void SetDefaultViewProj(const V3d_TypeOfOrientation Orientation) ;
  //! Gives the default visualisation mode.. <br>
  Standard_EXPORT     void SetDefaultVisualization(const V3d_TypeOfVisualization Type) ;
  //! defines the strategy concerning the ZBuffer activity. <br>
//!          If Automatic is true, ZBuffer will be activated or <br>
//!          deactivated depending on the fact that faces exist or <br>
//!          not in the Viewer. This will optimize the response time <br>
//!          in the case where only wireframe objects are displayed. <br>
//!          If Automatic is False, ZBuffer will be activated or <br>
//!          deactivated depending on the choice of SetVisualization <br>
//!          in each View. <br>
//!          Note that by default, the ZBufferManagment is not automatic. <br>
  Standard_EXPORT     void SetZBufferManagment(const Standard_Boolean Automatic) ;
  //! returns the ZBuffer stategy choice. <br>
  Standard_EXPORT     Standard_Boolean ZBufferManagment() const;
  //! Gives the default type of SHADING. <br>
  Standard_EXPORT     void SetDefaultShadingModel(const V3d_TypeOfShadingModel Type) ;
  //! Gives the default type of texture mapping. <br>
  Standard_EXPORT     void SetDefaultSurfaceDetail(const V3d_TypeOfSurfaceDetail Type) ;
  
  Standard_EXPORT     void SetDefaultAngle(const Quantity_PlaneAngle Angle) ;
  //! Defines the mode of regenerating the views making <br>
//!            up the viewer. This can be immediate <ASAP> or <br>
//!            deferred <WAIT>. In this latter case, the views are <br>
//!            updated when the method Update(me) is called. <br>
  Standard_EXPORT     void SetUpdateMode(const V3d_TypeOfUpdate Mode) ;
  
  Standard_EXPORT     void SetDefaultTypeOfView(const V3d_TypeOfView Type) ;
  
  Standard_EXPORT     void SetPrivilegedPlane(const gp_Ax3& aPlane) ;
  
  Standard_EXPORT     gp_Ax3 PrivilegedPlane() const;
  
  Standard_EXPORT     void DisplayPrivilegedPlane(const Standard_Boolean OnOff,const Quantity_Length aSize = 1) ;
  //! Activates MyLight in the viewer. <br>
  Standard_EXPORT     void SetLightOn(const Handle(V3d_Light)& MyLight) ;
  //! Activates all the lights defined in this viewer. <br>
  Standard_EXPORT     void SetLightOn() ;
  //! Desactivate MyLight in this viewer. <br>
  Standard_EXPORT     void SetLightOff(const Handle(V3d_Light)& MyLight) ;
  //! Deactivate all the Lights defined in this viewer. <br>
  Standard_EXPORT     void SetLightOff() ;
  //! Delete Light in Sequence Of Lights. <br>
  Standard_EXPORT     void DelLight(const Handle(V3d_Light)& MyLight) ;
  //! Defines the selected light. <br>
  Standard_EXPORT     void SetCurrentSelectedLight(const Handle(V3d_Light)& TheLight) ;
  //! Defines the selected light at NULL. <br>
  Standard_EXPORT     void ClearCurrentSelectedLight() ;
  //! Returns the default background colour depending of the type. <br>
  Standard_EXPORT     void DefaultBackgroundColor(const Quantity_TypeOfColor Type,Quantity_Parameter& V1,Quantity_Parameter& V2,Quantity_Parameter& V3) const;
  //! Returns the default background colour object. <br>
  Standard_EXPORT     Quantity_Color DefaultBackgroundColor() const;
  //! Returns the gradient background colour objects of the view. <br>
  Standard_EXPORT     void DefaultBgGradientColors(Quantity_Color& Color1,Quantity_Color& Color2) const;
  //! Returns the default size of the view. <br>
  Standard_EXPORT     Quantity_Length DefaultViewSize() const;
  //! Returns the default Projection. <br>
  Standard_EXPORT     V3d_TypeOfOrientation DefaultViewProj() const;
  //! Returns the default type of Visualization. <br>
  Standard_EXPORT     V3d_TypeOfVisualization DefaultVisualization() const;
  //! Returns the default type of Shading <br>
  Standard_EXPORT     V3d_TypeOfShadingModel DefaultShadingModel() const;
  //! Returns the default type of texture mapping <br>
  Standard_EXPORT     V3d_TypeOfSurfaceDetail DefaultSurfaceDetail() const;
  
  Standard_EXPORT     Quantity_PlaneAngle DefaultAngle() const;
  //! Returns the regeneration mode of views in the viewer. <br>
  Standard_EXPORT     V3d_TypeOfUpdate UpdateMode() const;
  //! Returns True if One View more can be <br>
//!          activated in this Viewer. <br>
  Standard_EXPORT     Standard_Boolean IfMoreViews() const;
  //! initializes an iteration on the active views. <br>
  Standard_EXPORT     void InitActiveViews() ;
  //! returns true if there are more active view(s) to return. <br>
  Standard_EXPORT     Standard_Boolean MoreActiveViews() const;
  //! Go to the next active view <br>
//!           (if there is not, ActiveView will raise an exception) <br>
  Standard_EXPORT     void NextActiveViews() ;
  
  Standard_EXPORT     Handle_V3d_View ActiveView() const;
  //! returns true if there is only <br>
//!          one active view. <br>
  Standard_EXPORT     Standard_Boolean LastActiveView() const;
  //! initializes an iteration on the Defined views. <br>
  Standard_EXPORT     void InitDefinedViews() ;
  //! returns true if there are more Defined view(s) to return. <br>
  Standard_EXPORT     Standard_Boolean MoreDefinedViews() const;
  //! Go to the next Defined view <br>
//!           (if there is not, DefinedView will raise an exception) <br>
  Standard_EXPORT     void NextDefinedViews() ;
  
  Standard_EXPORT     Handle_V3d_View DefinedView() const;
  //! initializes an iteration on the active Lights. <br>
  Standard_EXPORT     void InitActiveLights() ;
  //! returns true if there are more active Light(s) to return. <br>
  Standard_EXPORT     Standard_Boolean MoreActiveLights() const;
  //! Go to the next active Light <br>
//!           (if there is not, ActiveLight will raise an exception) <br>
  Standard_EXPORT     void NextActiveLights() ;
  
  Standard_EXPORT     Handle_V3d_Light ActiveLight() const;
  //! initializes an iteration on the Defined Lights. <br>
  Standard_EXPORT     void InitDefinedLights() ;
  //! returns true if there are more Defined Light(s) to return. <br>
  Standard_EXPORT     Standard_Boolean MoreDefinedLights() const;
  //! Go to the next Defined Light <br>
//!           (if there is not, DefinedLight will raise an exception) <br>
  Standard_EXPORT     void NextDefinedLights() ;
  
  Standard_EXPORT     Handle_V3d_Light DefinedLight() const;
  //! Adds Plane in Sequence Of Planes. <br>
  Standard_EXPORT     void AddPlane(const Handle(V3d_Plane)& MyPlane) ;
  //! Delete Plane in Sequence Of Planes. <br>
  Standard_EXPORT     void DelPlane(const Handle(V3d_Plane)& MyPlane) ;
  //! initializes an iteration on the Defined Planes. <br>
  Standard_EXPORT     void InitDefinedPlanes() ;
  //! returns true if there are more Defined Plane(s) to return. <br>
  Standard_EXPORT     Standard_Boolean MoreDefinedPlanes() const;
  //! Go to the next Defined Plane <br>
//!           (if there is not, DefinedPlane will raise an exception) <br>
  Standard_EXPORT     void NextDefinedPlanes() ;
  
  Standard_EXPORT     Handle_V3d_Plane DefinedPlane() const;
  //! Returns the viewer associated to Visual3d . <br>
  Standard_EXPORT     Handle_Visual3d_ViewManager Viewer() const;
  //! Returns the Selected Light. <br>
  Standard_EXPORT     Handle_V3d_Light CurrentSelectedLight() const;
  
  Standard_EXPORT     Standard_Boolean IsGlobalLight(const Handle(V3d_Light)& TheLight) const;
  //! returns true if the computed mode can be used. <br>
  Standard_EXPORT     Standard_Boolean ComputedMode() const;
  //! returns true if by default the computed mode must be used. <br>
  Standard_EXPORT     Standard_Boolean DefaultComputedMode() const;
  //! Activates the grid in all views of <me>. <br>
  Standard_EXPORT     void ActivateGrid(const Aspect_GridType aGridType,const Aspect_GridDrawMode aGridDrawMode) ;
  //! Deactivates the grid in all views of <me>. <br>
  Standard_EXPORT     void DeactivateGrid() ;
  //! Show/Don't show grid echo to the hit point. <br>
//! If TRUE,the grid echo will be shown at ConvertToGrid() time. <br>
  Standard_EXPORT     void SetGridEcho(const Standard_Boolean showGrid = Standard_True) ;
  //! Show grid echo <aMarker> to the hit point. <br>
//!  Warning: When the grid echo marker is not set, <br>
//!           a default marker is build with the attributes: <br>
//!           marker type : Aspect_TOM_STAR <br>
//!           marker color : Quantity_NOC_GRAY90 <br>
//!           marker size : 3.0 <br>
  Standard_EXPORT     void SetGridEcho(const Handle(Graphic3d_AspectMarker3d)& aMarker) ;
  //! Returns TRUE when grid echo must be displayed <br>
//!           at hit point. <br>
  Standard_EXPORT     Standard_Boolean GridEcho() const;
  //! Returns Standard_True if a grid is activated in <me>. <br>
  Standard_EXPORT     Standard_Boolean IsActive() const;
  //! Returns the defined grid in <me>. <br>
  Standard_EXPORT     Handle_Aspect_Grid Grid() const;
  //! Returns the current grid type defined in <me>. <br>
  Standard_EXPORT     Aspect_GridType GridType() const;
  //! Returns the current grid draw mode defined in <me>. <br>
  Standard_EXPORT     Aspect_GridDrawMode GridDrawMode() const;
  //! Returns the definition of the rectangular grid. <br>
  Standard_EXPORT     void RectangularGridValues(Quantity_Length& XOrigin,Quantity_Length& YOrigin,Quantity_Length& XStep,Quantity_Length& YStep,Quantity_PlaneAngle& RotationAngle) const;
  //! Sets the definition of the rectangular grid. <br>
//!            <XOrigin>, <YOrigin> defines the origin of the grid. <br>
//!            <XStep> defines the interval between 2 vertical lines. <br>
//!            <YStep> defines the interval between 2 horizontal lines. <br>
//!            <RotationAngle> defines the rotation angle of the grid. <br>
  Standard_EXPORT     void SetRectangularGridValues(const Quantity_Length XOrigin,const Quantity_Length YOrigin,const Quantity_Length XStep,const Quantity_Length YStep,const Quantity_PlaneAngle RotationAngle) ;
  //! Returns the definition of the circular grid. <br>
  Standard_EXPORT     void CircularGridValues(Quantity_Length& XOrigin,Quantity_Length& YOrigin,Quantity_Length& RadiusStep,Standard_Integer& DivisionNumber,Quantity_PlaneAngle& RotationAngle) const;
  //! Sets the definition of the circular grid. <br>
//!            <XOrigin>, <YOrigin> defines the origin of the grid. <br>
//!            <RadiusStep> defines the interval between 2 circles. <br>
//!            <DivisionNumber> defines the section number of one half circle. <br>
//!            <RotationAngle> defines the rotation angle of the grid. <br>
  Standard_EXPORT     void SetCircularGridValues(const Quantity_Length XOrigin,const Quantity_Length YOrigin,const Quantity_Length RadiusStep,const Standard_Integer DivisionNumber,const Quantity_PlaneAngle RotationAngle) ;
  //! Returns the location and the size of the grid. <br>
  Standard_EXPORT     void CircularGridGraphicValues(Quantity_Length& Radius,Quantity_Length& OffSet) const;
  //! Sets the location and the size of the grid. <br>
//!            <XSize> defines the width of the grid. <br>
//!            <YSize> defines the height of the grid. <br>
//!            <OffSet> defines the displacement along the plane normal. <br>
  Standard_EXPORT     void SetCircularGridGraphicValues(const Quantity_Length Radius,const Quantity_Length OffSet) ;
  //! Returns the location and the size of the grid. <br>
  Standard_EXPORT     void RectangularGridGraphicValues(Quantity_Length& XSize,Quantity_Length& YSize,Quantity_Length& OffSet) const;
  //! Sets the location and the size of the grid. <br>
//!            <XSize> defines the width of the grid. <br>
//!            <YSize> defines the height of the grid. <br>
//!            <OffSet> defines the displacement along the plane normal. <br>
  Standard_EXPORT     void SetRectangularGridGraphicValues(const Quantity_Length XSize,const Quantity_Length YSize,const Quantity_Length OffSet) ;
  //! Returns the gradient background of the view. <br>
  Standard_EXPORT     Aspect_GradientBackground GetGradientBackground() const;
  //! defines default lights  - <br>
//!          positional-light 0.3 0. 0. <br>
//!          directional-light V3d_XnegYposZpos <br>
//!          directional-light V3d_XnegYneg <br>
//!          ambient-light <br>
  Standard_EXPORT     void SetDefaultLights() ;
  
  Standard_EXPORT     void Init() ;


friend class V3d_View;
friend class V3d_Light;
friend class V3d_Plane;
friend   //! test. <br>
  Standard_EXPORT   void V3d::SetPlane(const Handle(V3d_Viewer)& aViewer,const Quantity_Length x1,const Quantity_Length y1,const Quantity_Length z1,const Quantity_Length x2,const Quantity_Length y2,const Quantity_Length z2) ;


  DEFINE_STANDARD_RTTI(V3d_Viewer)

protected:




private: 

  //! Returns the default background colour. <br>
  Standard_EXPORT     Aspect_Background GetBackgroundColor() const;
  //! Adds View in Sequence Of Views. <br>
  Standard_EXPORT     void AddView(const Handle(V3d_View)& MyView) ;
  //! Delete View in Sequence Of Views. <br>
  Standard_EXPORT     void DelView(const Handle(V3d_View)& MyView) ;
  //! Adds Light in Sequence Of Lights. <br>
  Standard_EXPORT     void AddLight(const Handle(V3d_Light)& MyLight) ;
  
  Standard_EXPORT     Standard_Boolean IsActive(const Handle(V3d_View)& aView) const;
  
//! Display grid echo at requested point in the view. <br>
  Standard_EXPORT     void ShowGridEcho(const Handle(V3d_View)& aView,const Graphic3d_Vertex& aPoint) ;

Handle_Visual3d_ViewManager MyViewer;
V3d_ListOfTransient MyDefinedViews;
V3d_ListOfTransient MyActiveViews;
V3d_ListOfTransient MyDefinedLights;
V3d_ListOfTransient MyActiveLights;
V3d_ListOfTransient MyDefinedPlanes;
Aspect_Background MyBackground;
Aspect_GradientBackground MyGradientBackground;
Standard_Real MyViewSize;
V3d_TypeOfOrientation MyViewProj;
V3d_TypeOfVisualization MyVisualization;
V3d_TypeOfShadingModel MyShadingModel;
V3d_TypeOfSurfaceDetail MySurfaceDetail;
Quantity_PlaneAngle MyDefaultAngle;
V3d_TypeOfView MyDefaultTypeOfView;
Handle_V3d_OrthographicView MyDefaultOrthographicView;
Handle_V3d_PerspectiveView MyDefaultPerspectiveView;
Handle_V3d_Light MyCurrentSelectedLight;
TColStd_ListIteratorOfListOfTransient myActiveViewsIterator;
TColStd_ListIteratorOfListOfTransient myDefinedViewsIterator;
TColStd_ListIteratorOfListOfTransient myActiveLightsIterator;
TColStd_ListIteratorOfListOfTransient myDefinedLightsIterator;
TColStd_ListIteratorOfListOfTransient myDefinedPlanesIterator;
Standard_Boolean myComputedMode;
Standard_Boolean myDefaultComputedMode;
gp_Ax3 myPrivilegedPlane;
Handle_Graphic3d_Structure myPlaneStructure;
Standard_Boolean myDisplayPlane;
Quantity_Length myDisplayPlaneLength;
Handle_V3d_RectangularGrid myRGrid;
Handle_V3d_CircularGrid myCGrid;
Aspect_GridType myGridType;
Standard_Boolean myGridEcho;
Handle_Graphic3d_Structure myGridEchoStructure;
Handle_Graphic3d_Group myGridEchoGroup;
Handle_Graphic3d_AspectMarker3d myGridEchoAspect;


};





// other Inline functions and methods (like "C++: function call" methods)


#endif