2454aa71b8987425789ebab74751ba69077d64fc
[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 void V3d_View::SetRaytracingMode()
57 {
58   Graphic3d_CView* cView = (Graphic3d_CView* )MyView->CView();
59
60   cView->IsRaytracing = 1;
61 }
62
63 void V3d_View::SetRasterizationMode()
64 {
65   Graphic3d_CView* cView = (Graphic3d_CView* )MyView->CView();
66
67   cView->IsRaytracing = 0;
68 }
69
70 void V3d_View::EnableRaytracedShadows()
71 {
72   Graphic3d_CView* cView = (Graphic3d_CView* )MyView->CView();
73
74   cView->IsShadowsEnabled = 1;
75 }
76
77 void V3d_View::EnableRaytracedReflections()
78 {
79   Graphic3d_CView* cView = (Graphic3d_CView* )MyView->CView();
80
81   cView->IsReflectionsEnabled = 1;
82 }
83
84 void V3d_View::EnableRaytracedAntialiasing()
85 {
86   Graphic3d_CView* cView = (Graphic3d_CView* )MyView->CView();
87
88   cView->IsAntialiasingEnabled = 1;
89 }
90
91 void V3d_View::DisableRaytracedShadows()
92 {
93   Graphic3d_CView* cView = (Graphic3d_CView* )MyView->CView();
94
95   cView->IsShadowsEnabled = 0;
96 }
97
98 void V3d_View::DisableRaytracedReflections()
99 {
100   Graphic3d_CView* cView = (Graphic3d_CView* )MyView->CView();
101
102   cView->IsReflectionsEnabled = 0;
103 }
104
105 void V3d_View::DisableRaytracedAntialiasing()
106 {
107   Graphic3d_CView* cView = (Graphic3d_CView* )MyView->CView();
108
109   cView->IsAntialiasingEnabled = 0;
110 }
111
112 void V3d_View::SetLayerMgr(const Handle(V3d_LayerMgr)& aMgr)
113 {
114   MyLayerMgr = aMgr;
115 }
116
117 void V3d_View::ColorScaleDisplay()
118 {
119   if ( MyLayerMgr.IsNull() )
120     MyLayerMgr = new V3d_LayerMgr( this );
121
122   MyLayerMgr->ColorScaleDisplay();
123   MustBeResized();
124   if ( !Window().IsNull() ) {
125     Standard_Integer aW( 0 ), aH( 0 );
126     Window()->Size( aW, aH );
127     Redraw( 0, 0, aW, aH );
128   }
129 }
130
131 void V3d_View::ColorScaleErase()
132 {
133   if ( !MyLayerMgr.IsNull() )
134     MyLayerMgr->ColorScaleErase();
135 }
136
137 Standard_Boolean V3d_View::ColorScaleIsDisplayed() const
138 {
139   Standard_Boolean aStatus = Standard_False;
140   if ( !MyLayerMgr.IsNull() )
141     aStatus = MyLayerMgr->ColorScaleIsDisplayed();
142
143   return aStatus;
144 }
145
146 Handle(Aspect_ColorScale) V3d_View::ColorScale() const
147 {
148   if ( MyLayerMgr.IsNull() ) {
149     Handle(V3d_View) that = this;
150     that->MyLayerMgr = new V3d_LayerMgr( this );
151   }
152
153   return MyLayerMgr->ColorScale();
154 }