0023544: Texture management in TKOpenGl should be redesigned
[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
39 /* MODELE CLIPPING */
40
41 typedef struct {
42
43         int WsId;
44
45         int ViewId;
46
47         int PlaneId;
48
49         int Active;
50
51         float CoefA;
52         float CoefB;
53         float CoefC;
54         float CoefD;
55
56 } CALL_DEF_PLANE;
57
58
59 /* SOURCE LUMINEUSE */
60
61 typedef struct {
62
63         int WsId;
64
65         int ViewId;
66
67         int LightId;
68
69         int Active;
70
71         int LightType;
72
73         int Headlight;
74
75         CALL_DEF_COLOR Color;
76
77         CALL_DEF_VERTEX Position;
78
79         CALL_DEF_VERTEX Direction;
80
81         float Concentration;
82
83         float Attenuation[2];
84
85         float Angle;
86
87 } CALL_DEF_LIGHT;
88
89
90 /* ORIENTATION */
91
92 typedef struct {
93
94   CALL_DEF_VERTEX ViewReferencePoint;
95   CALL_DEF_VERTEX ViewReferencePlane;
96   CALL_DEF_VERTEX ViewReferenceUp;
97   float ViewScaleX;
98   float ViewScaleY;
99   float ViewScaleZ;
100
101   int   IsCustomMatrix;
102   float ModelViewMatrix[4][4];
103
104 } CALL_DEF_VIEWORIENTATION;
105
106
107 /* MAPPING */
108
109 typedef struct {
110
111   int Projection;
112
113   CALL_DEF_VERTEX ProjectionReferencePoint;
114
115   float ViewPlaneDistance;
116   float BackPlaneDistance;
117   float FrontPlaneDistance;
118
119   struct {
120     float um, vm, uM, vM;
121   } WindowLimit;
122
123   int   IsCustomMatrix;
124   float ProjectionMatrix[4][4];
125
126 } CALL_DEF_VIEWMAPPING;
127
128 /* REPERAGE */
129
130 typedef struct {
131
132         int WsId;
133         int ViewId;
134
135         int x, y;
136
137         CALL_DEF_WINDOW DefWindow;
138
139         struct {
140                 float aperture;
141                 int order;
142                 int depth;
143         } Context;
144
145         struct {
146                 int depth;
147                 int *listid;
148                 int *listpickid;
149                 int *listelem;
150         } Pick;
151
152 } CALL_DEF_PICK;
153
154 #endif /* InterfaceGraphic_Visual3dHeader */