0024070: OpenGL capped object-level clipping planes
[occt.git] / src / InterfaceGraphic / InterfaceGraphic_Visual3d.hxx
1 // Copyright (c) 1991-1999 Matra Datavision
2 // Copyright (c) 1999-2012 OPEN CASCADE SAS
3 //
4 // The content of this file is subject to the Open CASCADE Technology Public
5 // License Version 6.5 (the "License"). You may not use the content of this file
6 // except in compliance with the License. Please obtain a copy of the License
7 // at http://www.opencascade.org and read it completely before using this file.
8 //
9 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
10 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
11 //
12 // The Original Code and all software distributed under the License is
13 // distributed on an "AS IS" basis, without warranty of any kind, and the
14 // Initial Developer hereby disclaims all such warranties, including without
15 // limitation, any warranties of merchantability, fitness for a particular
16 // purpose or non-infringement. Please see the License for the specific terms
17 // and conditions governing the rights and limitations under the License.
18
19 #ifndef InterfaceGraphic_Visual3dHeader
20 #define InterfaceGraphic_Visual3dHeader
21
22 #include <InterfaceGraphic_Aspect.hxx>
23 #include <InterfaceGraphic_Graphic3d.hxx>
24 #include <Aspect_RenderingContext.hxx>
25 #include <Aspect_GraphicCallbackProc.hxx>
26 #include <Standard_Transient.hxx>
27
28 typedef float CALL_DEF_MATRIX4X4[4][4];
29
30 /* SOMMET */
31
32 typedef struct {
33
34         float x, y, z;
35
36 } CALL_DEF_VERTEX;
37
38 /* SOURCE LUMINEUSE */
39
40 typedef struct {
41
42         int WsId;
43
44         int ViewId;
45
46         int LightId;
47
48         int Active;
49
50         int LightType;
51
52         int Headlight;
53
54         CALL_DEF_COLOR Color;
55
56         CALL_DEF_VERTEX Position;
57
58         CALL_DEF_VERTEX Direction;
59
60         float Concentration;
61
62         float Attenuation[2];
63
64         float Angle;
65
66 } CALL_DEF_LIGHT;
67
68
69 /* ORIENTATION */
70
71 typedef struct {
72
73   CALL_DEF_VERTEX ViewReferencePoint;
74   CALL_DEF_VERTEX ViewReferencePlane;
75   CALL_DEF_VERTEX ViewReferenceUp;
76   float ViewScaleX;
77   float ViewScaleY;
78   float ViewScaleZ;
79
80   float ModelViewMatrix[4][4];
81
82   unsigned IsCustomMatrix;
83
84 } CALL_DEF_VIEWORIENTATION;
85
86
87 /* MAPPING */
88
89 typedef struct {
90
91   int Projection;
92
93   CALL_DEF_VERTEX ProjectionReferencePoint;
94
95   float ViewPlaneDistance;
96   float BackPlaneDistance;
97   float FrontPlaneDistance;
98
99   struct {
100     float um, vm, uM, vM;
101   } WindowLimit;
102
103   float ProjectionMatrix[4][4];
104
105   unsigned IsCustomMatrix;
106
107 } CALL_DEF_VIEWMAPPING;
108
109 /* REPERAGE */
110
111 typedef struct {
112
113         int WsId;
114         int ViewId;
115
116         int x, y;
117
118         CALL_DEF_WINDOW DefWindow;
119
120         struct {
121                 float aperture;
122                 int order;
123                 int depth;
124         } Context;
125
126         struct {
127                 int depth;
128                 int *listid;
129                 int *listpickid;
130                 int *listelem;
131         } Pick;
132
133 } CALL_DEF_PICK;
134
135 #endif /* InterfaceGraphic_Visual3dHeader */