0024321: Use List collection instead of NCollection_Set for collection of Handle...
[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_SequenceOfHClipPlane.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_SequenceOfHClipPlane 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         GContext (NULL),
96     GDisplayCB  (NULL),
97     GClientData (NULL),
98     ptrFBO (NULL),
99     WasRedrawnGL (0),
100     IsRaytracing (0),
101     IsShadowsEnabled (1),
102     IsReflectionsEnabled (1),
103     IsAntialiasingEnabled (0)
104   {
105     memset(&Orientation,0,sizeof(Orientation));
106         memset(&Mapping,0,sizeof(Mapping));
107         memset(&OrientationReset,0,sizeof(OrientationReset));
108         memset(&MappingReset,0,sizeof(MappingReset));
109         memset(&DefWindow,0,sizeof(DefWindow));
110   }
111
112 public:
113
114   int   WsId;
115   int   ViewId;
116   void* ptrView;
117
118   int   IsDeleted;
119   int   IsOpen;
120
121   int   Active;
122
123   CALL_DEF_VIEWORIENTATION Orientation;
124   CALL_DEF_VIEWMAPPING     Mapping;
125
126   CALL_DEF_VIEWORIENTATION OrientationReset;
127   CALL_DEF_VIEWMAPPING     MappingReset;
128
129   CALL_DEF_VIEWCONTEXT     Context;
130
131   CALL_DEF_WINDOW          DefWindow;
132
133   void* ptrUnderLayer;
134   void* ptrOverLayer;
135
136   int   Backfacing;
137
138   Aspect_RenderingContext    GContext;
139   Aspect_GraphicCallbackProc GDisplayCB;
140   void* GClientData;
141
142   void* ptrFBO;
143
144   //! Was the window redrawn by standard OpenGL?
145   mutable int WasRedrawnGL;
146
147   //! Enables/disables OpenCL-based ray-tracing.
148   int IsRaytracing;
149
150   //! Enables/disables ray-traced sharp shadows.
151   int IsShadowsEnabled;
152   
153   //! Enables/disables ray-traced reflections.
154   int IsReflectionsEnabled;
155   
156   //! Enables/disables ray-traced adaptive anti-aliasing.
157   int IsAntialiasingEnabled;
158
159 };
160
161 const Handle(Standard_Type)& TYPE(Graphic3d_CView);
162
163 #endif // Graphic3d_CView_HeaderFile