0024887: Visualization - revise and extend Raytracing controls
[occt.git] / src / V3d / V3d_View_5.cxx
1 // Copyright (c) 1999-2014 OPEN CASCADE SAS
2 //
3 // This file is part of Open CASCADE Technology software library.
4 //
5 // This library is free software; you can redistribute it and/or modify it under
6 // the terms of the GNU Lesser General Public License version 2.1 as published
7 // by the Free Software Foundation, with special exception defined in the file
8 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
9 // distribution for complete text of the license and disclaimer of any warranty.
10 //
11 // Alternatively, this file may be used under the terms of Open CASCADE
12 // commercial license or contractual agreement.
13
14 /***********************************************************************
15  
16      FONCTION :
17      ----------
18         Classe V3d_View :
19  
20      HISTORIQUE DES MODIFICATIONS   :
21      --------------------------------
22       22-10-01 : SAV ; Created
23
24 ************************************************************************/
25
26 /*----------------------------------------------------------------------*/
27 /*
28  * Includes
29  */
30 #include <V3d_View.jxx>
31
32 //BUC61044 25/10/01 SAV ; added functionality to control gl depth testing from higher API
33 //BUC61045 25/10/01 SAV ; added functionality to control gl lighting from higher API
34
35
36 void V3d_View::EnableDepthTest( const Standard_Boolean enable ) const
37 {
38   MyView->EnableDepthTest( enable );
39 }
40
41 Standard_Boolean V3d_View::IsDepthTestEnabled() const
42 {
43   return MyView->IsDepthTestEnabled();
44 }
45
46 void V3d_View::EnableGLLight( const Standard_Boolean enable ) const
47 {
48   MyView->EnableGLLight( enable );
49 }
50
51 Standard_Boolean V3d_View::IsGLLightEnabled() const
52 {
53   return MyView->IsGLLightEnabled();
54 }
55
56 const Graphic3d_RenderingParams& V3d_View::RenderingParams() const
57 {
58   return static_cast<Graphic3d_CView*> (MyView->CView())->RenderParams;
59 }
60
61 Graphic3d_RenderingParams& V3d_View::ChangeRenderingParams()
62 {
63   return static_cast<Graphic3d_CView*> (MyView->CView())->RenderParams;
64 }
65
66 void V3d_View::SetLayerMgr(const Handle(V3d_LayerMgr)& aMgr)
67 {
68   MyLayerMgr = aMgr;
69 }
70
71 void V3d_View::ColorScaleDisplay()
72 {
73   if ( MyLayerMgr.IsNull() )
74     MyLayerMgr = new V3d_LayerMgr( this );
75
76   MyLayerMgr->ColorScaleDisplay();
77   MustBeResized();
78   if ( !Window().IsNull() ) {
79     Standard_Integer aW( 0 ), aH( 0 );
80     Window()->Size( aW, aH );
81     Redraw( 0, 0, aW, aH );
82   }
83 }
84
85 void V3d_View::ColorScaleErase()
86 {
87   if ( !MyLayerMgr.IsNull() )
88     MyLayerMgr->ColorScaleErase();
89 }
90
91 Standard_Boolean V3d_View::ColorScaleIsDisplayed() const
92 {
93   Standard_Boolean aStatus = Standard_False;
94   if ( !MyLayerMgr.IsNull() )
95     aStatus = MyLayerMgr->ColorScaleIsDisplayed();
96
97   return aStatus;
98 }
99
100 Handle(Aspect_ColorScale) V3d_View::ColorScale() const
101 {
102   if ( MyLayerMgr.IsNull() ) {
103     Handle(V3d_View) that = this;
104     that->MyLayerMgr = new V3d_LayerMgr( this );
105   }
106
107   return MyLayerMgr->ColorScale();
108 }