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
|
/***********************************************************************
FONCTION :
----------
File OpenGl_telem_view.h :
REMARQUES:
----------
HISTORIQUE DES MODIFICATIONS :
--------------------------------
xx-xx-xx : xxx ; Creation.
02-07-96 : FMN ; Suppression WSWSHeight et WSWSWidth
Suppression de TelSetWSWindow
03-07-96 : FMN ; A une workstation correspond une vue.
Suppression de TelGetViewportAtLocation()
Suppression de TelPrintAllViews()
03-03-98 : FMN ; Suppression variable externe TglWhetherPerspective
************************************************************************/
#ifndef OPENGL_TELEM_VIEW_H
#define OPENGL_TELEM_VIEW_H
#include <OpenGl_telem.hxx>
#include <OpenGl_tgl.hxx>
#include <NCollection_List.hxx>
typedef struct
{
Tfloat xmin;
Tfloat xmax;
Tfloat ymin;
Tfloat ymax;
} Tlimit;
typedef struct
{
Tfloat xmin;
Tfloat xmax;
Tfloat ymin;
Tfloat ymax;
Tfloat zmin;
Tfloat zmax;
} Tlimit3;
typedef enum
{
TelParallel, TelPerspective
} TelProjType;
typedef struct
{
Tlimit window;
Tlimit3 viewport;
TelProjType proj;
Tfloat prp[3];
Tfloat vpd;
Tfloat fpd;
Tfloat bpd;
} TEL_VIEW_MAPPING, *tel_view_mapping;
typedef struct
{
Tmatrix3 orientation_matrix;
Tmatrix3 mapping_matrix;
Tlimit3 clip_limit;
Tint clip_xy;
Tint clip_back;
Tint clip_front;
Tint shield_indicator;
TEL_COLOUR shield_colour;
Tint border_indicator;
TEL_COLOUR border_colour;
Tint active_status;
NCollection_List<CALL_DEF_PLANE> clipping_planes;
struct
{
Tfloat vrp[3];
Tfloat vpn[3];
Tfloat vup[3];
TEL_VIEW_MAPPING map;
Tfloat scaleFactors[3];
} extra;
} TEL_VIEW_REP, *tel_view_rep;
typedef enum
{
UVN2XYZ, XYZ2UVN
} TelCoordType;
extern Tint TglUpdateView0; /* defined in telem/view */
extern void /* vrp, vpn, vup, error_ind, mat */
TelEvalViewOrientationMatrix(Tfloat*, Tfloat*, Tfloat*, Tfloat*, Tint*, Tmatrix3);
extern void /* mapping, error_ind, mat */
TelEvalViewMappingMatrix( tel_view_mapping, Tint*, Tmatrix3 );
extern void /* mapping, error_ind, mat, cx, cy */
TelEvalViewMappingMatrixPick(tel_view_mapping, Tint*, Tmatrix3, Tfloat, Tfloat);
extern TStatus /* ws, view_id, view_representation */
TelSetViewRepresentation( Tint, Tint, tel_view_rep );
extern TStatus /* ws, view_id, type, uvn, xyz */
TelConvertCoord( Tint, Tint, TelCoordType, Tfloat*, Tfloat* );
extern TStatus TelSetViewIndex( Tint, Tint ); /* ws, view_id */
extern TStatus TelSetViewProjection( Tint, Tint ); /* ws, view_id */
extern TStatus /* ws, view_id, view_representation */
TelGetViewRepresentation( Tint, Tint, tel_view_rep );
extern TStatus TelDeleteViewsForWS( Tint wsid );
extern void TelClearViews( Tint ); /* ws */
extern void TelClearBackground( Tint ); /* ws */
extern TStatus TelPrintViewRepresentation( Tint, Tint ); /* ws, view */
extern TStatus Tel2Dto3D( Tint ws, Tint vid, Tint x, Tint y,
Tfloat *x1, Tfloat *y1, Tfloat *z1,
Tfloat *x2, Tfloat *y2, Tfloat *z2 );
/* x is from bottom */
/* y is from top */
#endif
|