33d0040b28016e38eae4581735a95b6ac5940ba2
[occt.git] / src / Graphic3d / Graphic3d_CView.hxx
1 // Copyright (c) 1999-2012 OPEN CASCADE SAS
2 //
3 // The content of this file is subject to the Open CASCADE Technology Public
4 // License Version 6.5 (the "License"). You may not use the content of this file
5 // except in compliance with the License. Please obtain a copy of the License
6 // at http://www.opencascade.org and read it completely before using this file.
7 //
8 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
9 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
10 //
11 // The Original Code and all software distributed under the License is
12 // distributed on an "AS IS" basis, without warranty of any kind, and the
13 // Initial Developer hereby disclaims all such warranties, including without
14 // limitation, any warranties of merchantability, fitness for a particular
15 // purpose or non-infringement. Please see the License for the specific terms
16 // and conditions governing the rights and limitations under the License.
17
18 #ifndef _Graphic3d_CView_HeaderFile
19 #define _Graphic3d_CView_HeaderFile
20
21 #include <InterfaceGraphic_Graphic3d.hxx>
22 #include <InterfaceGraphic_Visual3d.hxx>
23 #include <Handle_Graphic3d_TextureEnv.hxx>
24 #include <Graphic3d_CLight.hxx>
25 #include <Graphic3d_SetOfHClipPlane.hxx>
26
27 class CALL_DEF_VIEWCONTEXT
28 {
29
30 public:
31
32   CALL_DEF_VIEWCONTEXT()
33   : Aliasing (0),
34     BackZClipping  (0),
35     FrontZClipping (0),
36     DepthCueing (0),
37     ZClipFrontPlane (0.0f),
38     ZClipBackPlane  (0.0f),
39     DepthFrontPlane (0.0f),
40     DepthBackPlane  (0.0f),
41     ZBufferActivity (0),
42     Model (0),
43     Visualization (0),
44     NbActiveLight (0),
45     ActiveLight (NULL),
46     SurfaceDetail (0),
47     ClipPlanes()
48   {
49     //
50   }
51
52 public:
53
54   int   Aliasing;
55
56   int   BackZClipping;
57   int   FrontZClipping;
58
59   int   DepthCueing;
60
61   float ZClipFrontPlane;
62   float ZClipBackPlane;
63
64   float DepthFrontPlane;
65   float DepthBackPlane;
66
67   int   ZBufferActivity;
68   int   Model;
69   int   Visualization;
70
71   int   NbActiveLight;
72   Graphic3d_CLight* ActiveLight;
73
74   Handle(Graphic3d_TextureEnv) TextureEnv;
75   int   SurfaceDetail;
76
77   Graphic3d_SetOfHClipPlane ClipPlanes;
78 };
79
80 class Graphic3d_CView
81 {
82
83 public:
84
85   Graphic3d_CView()
86   : WsId (-1),
87     ViewId (0),
88     ptrView (NULL),
89     IsDeleted (0),
90     IsOpen (0),
91     Active (0),
92     ptrUnderLayer (NULL),
93     ptrOverLayer  (NULL),
94     Backfacing  (0),
95     GDisplayCB  (NULL),
96     GClientData (NULL),
97     ptrFBO (NULL),
98     WasRedrawnGL (0),
99     IsRaytracing (0),
100     IsShadowsEnabled (1),
101     IsReflectionsEnabled (1),
102     IsAntialiasingEnabled (0)
103   {
104     //
105   }
106
107 public:
108
109   int   WsId;
110   int   ViewId;
111   void* ptrView;
112
113   int   IsDeleted;
114   int   IsOpen;
115
116   int   Active;
117
118   CALL_DEF_VIEWORIENTATION Orientation;
119   CALL_DEF_VIEWMAPPING     Mapping;
120
121   CALL_DEF_VIEWORIENTATION OrientationReset;
122   CALL_DEF_VIEWMAPPING     MappingReset;
123
124   CALL_DEF_VIEWCONTEXT     Context;
125
126   CALL_DEF_WINDOW          DefWindow;
127
128   void* ptrUnderLayer;
129   void* ptrOverLayer;
130
131   int   Backfacing;
132
133   Aspect_RenderingContext    GContext;
134   Aspect_GraphicCallbackProc GDisplayCB;
135   void* GClientData;
136
137   void* ptrFBO;
138
139   //! Was the window redrawn by standard OpenGL?
140   mutable int WasRedrawnGL;
141
142   //! Enables/disables OpenCL-based ray-tracing.
143   int IsRaytracing;
144
145   //! Enables/disables ray-traced sharp shadows.
146   int IsShadowsEnabled;
147   
148   //! Enables/disables ray-traced reflections.
149   int IsReflectionsEnabled;
150   
151   //! Enables/disables ray-traced adaptive anti-aliasing.
152   int IsAntialiasingEnabled;
153
154 };
155
156 const Handle(Standard_Type)& TYPE(Graphic3d_CView);
157
158 #endif // Graphic3d_CView_HeaderFile