0024310: TKOpenGl - GLSL compatibility issues
[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
7fd59977 38/* ORIENTATION */
39
40typedef struct {
41
42 CALL_DEF_VERTEX ViewReferencePoint;
43 CALL_DEF_VERTEX ViewReferencePlane;
44 CALL_DEF_VERTEX ViewReferenceUp;
45 float ViewScaleX;
46 float ViewScaleY;
47 float ViewScaleZ;
48
7fd59977 49 float ModelViewMatrix[4][4];
50
498ce76b 51 unsigned IsCustomMatrix;
52
7fd59977 53} CALL_DEF_VIEWORIENTATION;
54
55
56/* MAPPING */
57
58typedef struct {
59
60 int Projection;
61
62 CALL_DEF_VERTEX ProjectionReferencePoint;
63
64 float ViewPlaneDistance;
65 float BackPlaneDistance;
66 float FrontPlaneDistance;
67
68 struct {
69 float um, vm, uM, vM;
70 } WindowLimit;
71
7fd59977 72 float ProjectionMatrix[4][4];
73
498ce76b 74 unsigned IsCustomMatrix;
75
7fd59977 76} CALL_DEF_VIEWMAPPING;
77
7fd59977 78/* REPERAGE */
79
80typedef struct {
81
82 int WsId;
83 int ViewId;
84
85 int x, y;
86
87 CALL_DEF_WINDOW DefWindow;
88
89 struct {
90 float aperture;
91 int order;
92 int depth;
93 } Context;
94
95 struct {
96 int depth;
97 int *listid;
98 int *listpickid;
99 int *listelem;
100 } Pick;
101
102} CALL_DEF_PICK;
103
7fd59977 104#endif /* InterfaceGraphic_Visual3dHeader */