0024070: OpenGL capped object-level clipping planes
[occt.git] / src / Visual3d / Visual3d.cdl
CommitLineData
b311480e 1-- Created on: 1991-10-07
2-- Created by: NW,JPB,CAL
3-- Copyright (c) 1991-1999 Matra Datavision
4-- Copyright (c) 1999-2012 OPEN CASCADE SAS
5--
6-- The content of this file is subject to the Open CASCADE Technology Public
7-- License Version 6.5 (the "License"). You may not use the content of this file
8-- except in compliance with the License. Please obtain a copy of the License
9-- at http://www.opencascade.org and read it completely before using this file.
10--
11-- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12-- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13--
14-- The Original Code and all software distributed under the License is
15-- distributed on an "AS IS" basis, without warranty of any kind, and the
16-- Initial Developer hereby disclaims all such warranties, including without
17-- limitation, any warranties of merchantability, fitness for a particular
18-- purpose or non-infringement. Please see the License for the specific terms
19-- and conditions governing the rights and limitations under the License.
20
7fd59977 21-- Package: Visual3d.cdl
7fd59977 22-- Updated: Vendredi 2 Octobre 1992
23-- Mercredi 31 mars 1993
24-- 1/08/97 ; PCT : ajout texture mapping
25-- 11-97: CAL; retrait de la dependance avec math.
26-- 15/01/98 ; FMN : Suppression Hidden Line
27-- 16-09-98 ; BGN : Ajout TypeOfTriedronEcho,
28-- TypeOfTriedronPosition.
29-- 22-09-98; BGN: S3989 (anciennement S3819): report
30-- dans Aspect des TypeOfTriedron*
31-- 14-01-00; GG : IMP140100 Add ViewManager pointer
7fd59977 32-- Purpose: Specifications definitives
7fd59977 33
34package Visual3d
35
36 ---Version:
37
38 ---Purpose: This package contains the group of classes necessary
39 -- for the implementation of commands for the 3D visualiser.
40 -- Use of this package is reserved to the visualiser.
41 --
42 -- The visualiser manages the structures, the views, the
43 -- light sources, and object picking.
44
4269bd1b 45 ---Keywords: View, Light, Pick
7fd59977 46 ---Warning:
47 ---References:
48
49uses
50
51 gp,
52 TCollection,
53 TColStd,
54 Quantity,
55 Aspect,
56 Graphic3d,
57 Image,
58 MMgt,
7fd59977 59 WNT,
eeaaaefb 60 OSD,
61 Font
7fd59977 62
63is
64
65 ---------------------------
66 -- Category: The exceptions
67 ---------------------------
68
69 exception ClipDefinitionError inherits OutOfRange;
70 ---Category: The exceptions
71
72 exception ContextPickDefinitionError inherits OutOfRange;
73 ---Category: The exceptions
74
75 exception DepthCueingDefinitionError inherits OutOfRange;
76 ---Category: The exceptions
77
78 exception LightDefinitionError inherits OutOfRange;
79 ---Category: The exceptions
80
81 exception PickError inherits OutOfRange;
82 ---Category: The exceptions
83
84 exception TransformError inherits OutOfRange;
85 ---Category: The exceptions
86
87 exception ViewDefinitionError inherits OutOfRange;
88 ---Category: The exceptions
89
90 exception ViewManagerDefinitionError inherits OutOfRange;
91 ---Category: The exceptions
92
93 exception ViewMappingDefinitionError inherits OutOfRange;
94 ---Category: The exceptions
95
96 exception ViewOrientationDefinitionError inherits OutOfRange;
97 ---Category: The exceptions
98
99 exception ZClippingDefinitionError inherits OutOfRange;
100 ---Category: The exceptions
101
102 exception TransientDefinitionError inherits OutOfRange;
103 ---Category: The exceptions
104
105 exception LayerDefinitionError inherits OutOfRange;
106 ---Category: The exceptions
107
108 -----------------------------
109 -- Category: The enumerations
110 -----------------------------
111
112 enumeration TypeOfAnswer is TOA_YES,
113 TOA_NO,
114 TOA_COMPUTE
115 end TypeOfAnswer;
116 ---Purpose: The answer of the method AcceptDisplay
117 -- AcceptDisplay means is it possible to display the
118 -- specified structure in the specified view ?
119 -- TOA_YES yes
120 -- TOA_NO no
121 -- TOA_COMPUTE yes but we have to compute the representation
122
123 enumeration TypeOfLightSource is TOLS_AMBIENT,
124 TOLS_DIRECTIONAL,
125 TOLS_POSITIONAL,
126 TOLS_SPOT
127 end TypeOfLightSource;
128 ---Purpose: Definition of all the type of light sources
129 --
130 -- TOLS_AMBIENT ambient light
131 -- TOLS_DIRECTIONAL directional light
132 -- TOLS_POSITIONAL positional light
133 -- TOLS_SPOT spot light
134
135 enumeration TypeOfModel is TOM_NONE,
136 TOM_INTERP_COLOR,
137 TOM_FACET,
138 TOM_VERTEX
139 end TypeOfModel;
140 ---Purpose: Definition of the rendering (colour shading) model
141 -- TOM_NONE No interpolation, constant shading
142 -- (FLAT Shading)
143 -- TOM_INTERP_COLOR Linear interpolation of color
144 -- (Gouraud Shading)
145 -- TOM_FACET Interpolation of color based on
146 -- dot products
147 -- (Quick Phong Shading)
148 -- TOM_VERTEX Interpolation of color based on
149 -- normals
150 -- (Phong Shading)
151 ---Category: The enumerations
152
153 enumeration TypeOfOrder is TOO_TOPFIRST,
154 TOO_BOTTOMFIRST
155 end TypeOfOrder;
156 ---Purpose: Definition of the order of selection
157 -- TOO_TOPFIRST the root structure first
158 -- TOO_BOTTOMFIRST the leaf structure first
159 -- Allows exploration of a PickPath in a PickDescriptor.
160 ---Category: The enumerations
161
162 enumeration TypeOfProjection is TOP_PERSPECTIVE,
163 TOP_PARALLEL
164 end TypeOfProjection;
165 ---Purpose: Definition of the type of 3D projection
166 --
167 -- TOP_PERSPECTIVE perspective projection (centre of
168 -- projection at a distance finite from
169 -- plane of projection)
170 -- TOP_PARALLEL parallel projection (point of
171 -- projection at infinity)
172 ---Category: The enumerations
173
174 enumeration TypeOfVisualization is TOV_WIREFRAME,
175 TOV_SHADING
176 end TypeOfVisualization;
177 ---Purpose: Modes of visualisation of objects in a view
178 --
179 -- TOV_WIREFRAME wireframe visualisation
180 -- TOV_SHADING shaded visualisation
181 ---Category: The enumerations
182
183 enumeration TypeOfSurfaceDetail is TOD_NONE,
184 TOD_ENVIRONMENT,
185 TOD_ALL
186 end TypeOfSurfaceDetail;
187 ---Purpose: Modes of visualisation of objects in a view
188 --
189 -- TOD_NONE no texture mapping
190 -- TOD_ENVIRONMENT only environnement mapping
191 -- TOD_ALL environnement + texture mapping
192 ---Category: The enumerations
193
194 enumeration TypeOfBackfacingModel is
195 TOBM_AUTOMATIC, TOBM_FORCE, TOBM_DISABLE
196 end TypeOfBackfacingModel;
197 ---Purpose : Modes of display of back faces in the view
198 --
199 -- TOBM_AUTOMATIC graphic's structure setting is in use
200 -- TOBM_FORCE force display of back faces
201 -- TOBM_DISABLE disable display of back faces
202 ---Category : Enumerations
203
204 ------------------------
205 -- Category: The classes
206 ------------------------
207
7fd59977 208 class ContextPick;
209 ---Purpose: This class allows the creation and update of a
210 -- pick context for one view of the viewer.
211 -- A context allows the control of different parameters
212 -- before the activation of a pick :
213 --
214 -- * pick aperture.
215 -- * the depth of pick, the number of sub-structures selected.
216 -- * the order of picking, the possibility to traverse
217 -- the pick structures starting from the roots or the leaves.
218 ---Category: The classes
219
220 class ContextView;
221 ---Purpose: This class manages the creation and update of a
222 -- visualisation context for one view in the viewer.
223 --
224 -- A context is defined by :
225 -- * Antialiasing.
226 -- * ZClipping.
227 -- * Depth-cueing.
228 -- * The type of visualisation.
229 -- * The light sources.
230 ---Category: The classes
231
232 class Light;
233 ---Purpose: This class defines and updates light sources.
234 -- There is no limit to the number of light sources defined.
235 -- Only the number of active sources is limited.
236 ---Category: The classes
237
238 class PickDescriptor;
239 ---Purpose: A PickDescriptor contains information on the picks.
240 -- It contains a certain number of PickPaths.
241 ---Category: The classes
242
243 class PickPath;
244 ---Purpose: A PickPath is a vector ( elem_num, pick_id, struct_id ).
245 -- It is one of the constituents of a PickDescriptor.
246 -- There are many Pickpaths in a PickDescriptor.
247 -- Each PickPath describes a structure or an sub-structure.
248 -- The pick-id is set by the SetPickId method from Group.
249 ---Category: The classes
250
251 class View;
252 ---Purpose: Creation and editing of a view in a 3D visualiser.
253 --
254 -- A 3D view is composed of an 'orientation' part defined
255 -- by the position of the observer, the viewing direction,
256 -- and a 'mapping' part defined by the type of projection
257 -- (parallel or perspective), and by the window-viewport
258 -- couple which allows passage from the projected coordinate
259 -- space into the screen space.
260 ---Category: The classes
261
262 class ViewManager;
263 ---Purpose: 3D Visualiser
264 ---Category: The classes
265
266 class ViewMapping;
267 ---Purpose: This class describes a projection and a system of
268 -- coordinates called NPC.(Normalized Projection Coordinates)
269 ---Category: The classes
270
271 class ViewOrientation;
272 ---Purpose: This class describes the manner in which the
273 -- observer looks at the visualised scene.
274 -- It defines a coordinates system called VRC
275 -- (View Reference Coordinates) with 3 axes U,V,N
276 ---Category: The classes
277
278 class TransientManager;
279 ---Purpose: 3D Transient Visualiser
280 ---Category: The classes
281
282 class Layer;
283 ---Purpose: 2D Layer
284 ---Category: The classes
285
286 class LayerItem;
287 ---Purpose: 2D Layer presentation unit
288 ---Category: The classes
289
290 ---------------------
291 -- Category: Pointers
292 ---------------------
293
294 pointer ViewPtr to View from Visual3d;
295 ---Category: Pointers
296
297 pointer ViewManagerPtr to ViewManager from Visual3d;
298 ---Category: Pointers
299
300 ---------------------------------
301 -- Category: Instantiated classes
302 ---------------------------------
303
304 imported NListOfLayerItem;
305
306 class SequenceOfPickPath instantiates
307 Sequence from TCollection (PickPath from Visual3d);
308 ---Category: Instantiated classes
309
310 class HSequenceOfPickPath instantiates
311 HSequence from TCollection
312 (PickPath from Visual3d, SequenceOfPickPath);
313 ---Category: Instantiated classes
314
7fd59977 315 class SetOfLight instantiates
316 Set from TCollection (Light from Visual3d);
317 ---Category: Instantiated classes
318
319 class HSetOfLight instantiates
320 HSet from TCollection
321 (Light from Visual3d, SetOfLight);
322 ---Category: Instantiated classes
323
324 class SetOfView instantiates
325 Set from TCollection (View from Visual3d);
326 ---Category: Instantiated classes
327
328 class HSetOfView instantiates
329 HSet from TCollection
330 (View from Visual3d, SetOfView);
331 ---Category: Instantiated classes
332
333end Visual3d;