0024070: OpenGL capped object-level clipping planes
[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/* SOURCE LUMINEUSE */
39
40typedef struct {
41
42 int WsId;
43
44 int ViewId;
45
46 int LightId;
47
48 int Active;
49
50 int LightType;
51
52 int Headlight;
53
54 CALL_DEF_COLOR Color;
55
56 CALL_DEF_VERTEX Position;
57
58 CALL_DEF_VERTEX Direction;
59
60 float Concentration;
61
62 float Attenuation[2];
63
64 float Angle;
65
66} CALL_DEF_LIGHT;
67
68
69/* ORIENTATION */
70
71typedef struct {
72
73 CALL_DEF_VERTEX ViewReferencePoint;
74 CALL_DEF_VERTEX ViewReferencePlane;
75 CALL_DEF_VERTEX ViewReferenceUp;
76 float ViewScaleX;
77 float ViewScaleY;
78 float ViewScaleZ;
79
7fd59977 80 float ModelViewMatrix[4][4];
81
498ce76b 82 unsigned IsCustomMatrix;
83
7fd59977 84} CALL_DEF_VIEWORIENTATION;
85
86
87/* MAPPING */
88
89typedef struct {
90
91 int Projection;
92
93 CALL_DEF_VERTEX ProjectionReferencePoint;
94
95 float ViewPlaneDistance;
96 float BackPlaneDistance;
97 float FrontPlaneDistance;
98
99 struct {
100 float um, vm, uM, vM;
101 } WindowLimit;
102
7fd59977 103 float ProjectionMatrix[4][4];
104
498ce76b 105 unsigned IsCustomMatrix;
106
7fd59977 107} CALL_DEF_VIEWMAPPING;
108
7fd59977 109/* REPERAGE */
110
111typedef struct {
112
113 int WsId;
114 int ViewId;
115
116 int x, y;
117
118 CALL_DEF_WINDOW DefWindow;
119
120 struct {
121 float aperture;
122 int order;
123 int depth;
124 } Context;
125
126 struct {
127 int depth;
128 int *listid;
129 int *listpickid;
130 int *listelem;
131 } Pick;
132
133} CALL_DEF_PICK;
134
7fd59977 135#endif /* InterfaceGraphic_Visual3dHeader */