summaryrefslogtreecommitdiff
path: root/inc/InterfaceGraphic_Visual3d.hxx
blob: bff76a305028d87b43553b5966b44aa1ed413427 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257

#ifndef InterfaceGraphic_Visual3dHeader
#define InterfaceGraphic_Visual3dHeader

/*

                     Copyright (C) 1991,1992,1993 by

                      MATRA DATAVISION, FRANCE

This software is furnished in accordance with the terms and conditions
of the contract and with the inclusion of the above copyright notice.
This software or any other copy thereof may not be provided or otherwise
be made available to any other person. No title to an ownership of the
software is hereby transferred.

At the termination of the contract, the software and all copies of this
software must be deleted.

Facility : CAS-CADE V1

*/

	/* CAL 02/08/94
	 * #include <InterfaceGraphic_X11.hxx>
	 *   Retrait de InterfaceGraphic_X11.hxx et declaration de Window
	 * a la mode X11 dans les structures CALL_DEF_VIEW et CALL_DEF_PICK.
	 *   En effet, un #define Opposite 4 se trouve dans X11/X.h
	 * et rentre en conflit avec la methode Opposite de math_Matrix.
	 *
	 * PCT 05/08/97
	 * ajout support texture mapping
	 *
         * EUG 21/09/99 G003
         *  degenerated mode support
            Add fields IsDegenerates,IsDegeneratesPrev,Backfacing
	    in CALL_DEF_VIEW structure.
	 * VKH 25/01/00 G004
	 * Dump a view
	   Add CALL_DEF_BITMAP reference in CALL_DEF_VIEW
	 */

#ifndef RIC120302
#define RIC120302       /*GG Add NEW fields in CALL_DEF_VIEW structure
//                      to manage graphic context and call back
*/
#endif

#include <InterfaceGraphic_Aspect.hxx>
#ifdef RIC120302
#include <Aspect_RenderingContext.hxx>
#include <Aspect_GraphicCallbackProc.hxx>
#endif

typedef float CALL_DEF_MATRIX4X4[4][4];

/* SOMMET */

typedef struct {

	float x, y, z;

} CALL_DEF_VERTEX;


/* MODELE CLIPPING */

typedef struct {

	int WsId;

	int ViewId;

	int PlaneId;

	int Active;

	float CoefA;
	float CoefB;
	float CoefC;
	float CoefD;

} CALL_DEF_PLANE;


/* SOURCE LUMINEUSE */

typedef struct {

	int WsId;

	int ViewId;

	int LightId;

	int Active;

	int LightType;

	int Headlight;

	CALL_DEF_COLOR Color;

	CALL_DEF_VERTEX Position;

	CALL_DEF_VERTEX Direction;

	float Concentration;

	float Attenuation[2];

	float Angle;

} CALL_DEF_LIGHT;


/* ORIENTATION */

typedef struct {

  CALL_DEF_VERTEX ViewReferencePoint;
  CALL_DEF_VERTEX ViewReferencePlane;
  CALL_DEF_VERTEX ViewReferenceUp;
  float ViewScaleX;
  float ViewScaleY;
  float ViewScaleZ;

  int   IsCustomMatrix;
  float ModelViewMatrix[4][4];

} CALL_DEF_VIEWORIENTATION;


/* MAPPING */

typedef struct {

  int Projection;

  CALL_DEF_VERTEX ProjectionReferencePoint;

  float ViewPlaneDistance;
  float BackPlaneDistance;
  float FrontPlaneDistance;

  struct {
    float um, vm, uM, vM;
  } WindowLimit;

  int   IsCustomMatrix;
  float ProjectionMatrix[4][4];

} CALL_DEF_VIEWMAPPING;


/* CONTEXT */

 typedef struct {

	int Aliasing;

	int BackZClipping;
	int FrontZClipping;

	int DepthCueing;

	float ZClipFrontPlane;
	float ZClipBackPlane;

	float DepthFrontPlane;
	float DepthBackPlane;

	int ZBufferActivity;
	int Model;
	int Visualization;

	int NbActiveLight;
	CALL_DEF_LIGHT *ActiveLight;

	int NbActivePlane;
	CALL_DEF_PLANE *ActivePlane;

	int TexEnvId;
	int SurfaceDetail;

} CALL_DEF_VIEWCONTEXT;


/* VUE */

typedef struct {

	int WsId;
	int ViewId;
	void *ptrView;

	int IsDeleted;
	int IsOpen;

	int Active;

	CALL_DEF_VIEWORIENTATION Orientation;
	CALL_DEF_VIEWMAPPING Mapping;

	CALL_DEF_VIEWORIENTATION OrientationReset;
	CALL_DEF_VIEWMAPPING MappingReset;

	CALL_DEF_VIEWCONTEXT Context;

	CALL_DEF_WINDOW DefWindow;

	CALL_DEF_BITMAP DefBitmap;

	void *ptrUnderLayer;
	void *ptrOverLayer;

        int IsDegenerates;
        int IsDegeneratesPrev;
        int Backfacing;
#ifdef RIC120302
        Aspect_RenderingContext GContext;
        Aspect_GraphicCallbackProc GDisplayCB;
        void* GClientData;
#endif

  void *ptrFBO;

} CALL_DEF_VIEW;


/* REPERAGE */

typedef struct {

	int WsId;
	int ViewId;

	int x, y;

	CALL_DEF_WINDOW DefWindow;

	struct {
		float aperture;
		int order;
		int depth;
	} Context;

	struct {
		int depth;
		int *listid;
		int *listpickid;
		int *listelem;
	} Pick;

} CALL_DEF_PICK;

#endif /* InterfaceGraphic_Visual3dHeader */