0024345: TKOpenGl - GLSL compatibility issues on NV40 (GeForce 6xxx/7xxx)
[occt.git] / src / OpenGl / OpenGl_telem_view.hxx
1 // Copyright (c) 1995-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 /***********************************************************************
20
21 FONCTION :
22 ----------
23 File OpenGl_telem_view.h :
24
25
26 REMARQUES:
27 ---------- 
28
29
30 HISTORIQUE DES MODIFICATIONS   :
31 --------------------------------
32 xx-xx-xx : xxx ; Creation.
33 02-07-96 : FMN ; Suppression WSWSHeight et WSWSWidth
34 Suppression de TelSetWSWindow
35 03-07-96 : FMN ; A une workstation correspond une vue.
36 Suppression de TelGetViewportAtLocation()
37 Suppression de TelPrintAllViews()
38 03-03-98 : FMN ; Suppression variable externe TglWhetherPerspective 
39
40 ************************************************************************/
41
42 #ifndef  OPENGL_TELEM_VIEW_H
43 #define  OPENGL_TELEM_VIEW_H
44
45 #include <InterfaceGraphic_tgl_all.hxx>
46 #include <Handle_OpenGl_Display.hxx>
47
48 typedef  struct
49 {
50   Tfloat    xmin;
51   Tfloat    xmax;
52   Tfloat    ymin;
53   Tfloat    ymax;
54 } Tlimit;
55
56 typedef  struct
57 {
58   Tfloat    xmin;
59   Tfloat    xmax;
60   Tfloat    ymin;
61   Tfloat    ymax;
62   Tfloat    zmin;
63   Tfloat    zmax;
64 } Tlimit3;
65
66 typedef  enum
67 {
68   TelParallel, TelPerspective
69 } TelProjType;
70
71 typedef  struct
72 {
73   Tlimit      window;
74   Tlimit3     viewport;
75   TelProjType proj;
76   Tfloat      prp[3];
77   Tfloat      vpd;
78   Tfloat      fpd;
79   Tfloat      bpd;
80 } TEL_VIEW_MAPPING, *tel_view_mapping;
81
82 extern  void              /* vrp,     vpn,     vup,     error_ind, mat */
83 TelEvalViewOrientationMatrix(Tfloat*, Tfloat*, Tfloat*, Tfloat*, Tint*, Tmatrix3);
84
85 extern  void            /*         mapping, error_ind,  mat */
86 TelEvalViewMappingMatrix (const Handle(OpenGl_Display)& theGlDisplay, tel_view_mapping theMapping, Tint* theError, Tmatrix3 theMat);
87
88 #endif