0023544: Texture management in TKOpenGl should be redesigned
[occt.git] / src / InterfaceGraphic / InterfaceGraphic_Visual3d.hxx
CommitLineData
b311480e 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
7fd59977 19#ifndef InterfaceGraphic_Visual3dHeader
20#define InterfaceGraphic_Visual3dHeader
21
7fd59977 22#include <InterfaceGraphic_Aspect.hxx>
bf75be98 23#include <InterfaceGraphic_Graphic3d.hxx>
7fd59977 24#include <Aspect_RenderingContext.hxx>
25#include <Aspect_GraphicCallbackProc.hxx>
bf75be98 26#include <Standard_Transient.hxx>
7fd59977 27
7fd59977 28typedef float CALL_DEF_MATRIX4X4[4][4];
29
30/* SOMMET */
31
32typedef struct {
33
34 float x, y, z;
35
36} CALL_DEF_VERTEX;
37
38
39/* MODELE CLIPPING */
40
41typedef 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
61typedef 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
92typedef 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
109typedef 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
7fd59977 128/* REPERAGE */
129
130typedef 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
7fd59977 154#endif /* InterfaceGraphic_Visual3dHeader */