0024723: Not implemented methods in Visual3d and V3d
[occt.git] / src / V3d / V3d.cdl
1 -- Created on: 1992-11-13
2 -- Created by: GG
3 -- Copyright (c) 1992-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
8 -- This library is free software; you can redistribute it and/or modify it under
9 -- the terms of the GNU Lesser General Public License version 2.1 as published
10 -- by the Free Software Foundation, with special exception defined in the file
11 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 -- distribution for complete text of the license and disclaimer of any warranty.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 -- Package:     V3d.cdl
18 -- Modified:    stt:25-02-98; S3558: ajout ViewStdAdapter
19 --              ZOV - Mars 30 1998
20 --              stt:08-04-98; suppr. ViewStdAdapter
21 --              16-09-98 ; BGN : Ajout TypeOfTriedronEcho,
22 --                               TypeOfTriedronPosition.
23 --              22-09-98; BGN: S3989 (anciennement S3819): report
24 --                             dans Aspect des TypeOfTriedron*
25 -- Purpose:     Specifications provisoires
26
27 package V3d
28
29         ---Purpose: This package contains the set of commands and services
30         --          of the 3D Viewer. It provides a set of high level commands
31         --          to control the views and viewing modes. This package is
32         --          complementary to the Visual3D graphic package.
33
34 uses
35         TColStd,
36         Graphic3d,
37         Visual3d,
38         MMgt,
39         TCollection,
40         Quantity,
41         Aspect,
42         Image,
43         gp,
44         OSD,
45         Font
46
47 is
48
49         ------------------------------
50         ---Category:  The extern types
51         ------------------------------
52
53         alias Coordinate is Length from Quantity;
54         ---Purpose: User-defined coordinate in the reference plane of
55         --          view (Projection or Mapping).
56
57
58         alias Parameter is Parameter from Quantity;
59
60         --------------------------
61         --Category: The Exceptions
62         --------------------------
63
64         exception BadValue inherits OutOfRange;
65         exception UnMapped inherits DomainError;
66
67         -----------------------------
68         ---Category: The Enumerations
69         -----------------------------
70
71         enumeration TypeOfView is ORTHOGRAPHIC,PERSPECTIVE
72         end TypeOfView ;
73         ---Purpose: Defines the type of projection of the view.
74
75         enumeration TypeOfShadingModel is COLOR,MULTICOLOR,FLAT,GOURAUD,HIDDEN
76               end TypeOfShadingModel ;
77         ---Purpose:
78         -- Defines the type of shading for the graphic object:
79         -- -   V3d_COLOR: simple surface color,
80         -- -   V3d_MULTICOLOR: interpolated colors,
81         -- -   V3d_FLAT: flat shading,
82         -- -   V3d_GOURAUD: Gouraud shading,
83         -- -   V3d_HIDDEN: hidden line removal.
84
85         enumeration  TypeOfSurfaceDetail  is  TEX_NONE, TEX_ENVIRONMENT, TEX_ALL
86                end TypeOfSurfaceDetail;
87         ---Purpose: Modes of visualization for objects in a view
88         -- -   V3d_TEX_NONE: no texture mapping,
89         -- -   V3d_TEX_ENVIRONMENT: environment mapping only,
90         -- -   V3d_TEX_ALL: environment and texture mapping.
91
92        enumeration TypeOfVisualization is      WIREFRAME,ZBUFFER
93                end TypeOfVisualization ;
94         ---Purpose: Determines the type of visualization in the view, either
95         -- WIREFRAME or ZBUFFER (shading).
96
97         enumeration TypeOfZclipping is     OFF,BACK,FRONT,SLICE
98         --          Type "BACK"    Remove rear part
99         --          Type "FRONT"   Remove front part
100         --               "SLICE"   Keep the slice between the front plane
101         --                         plane depth + half the thickness
102         --                         and the rear plane
103         --                         plane depth - half the thickness.
104         --               "OFF"     ZClipping deactivated.
105         end TypeOfZclipping ;
106         ---Purpose: The available options are
107         -- -   V3d_OFF: Zclipping (clipping executed in the
108         --   depth of the view) is deactivated,
109         -- -   V3d_BACK: back Zclipping is activated,
110         -- -   V3d_FRONT: front Zclipping is activated,
111         -- -   V3d_SLICE: both front and back Zclippings are activated.
112
113         enumeration TypeOfLight is AMBIENT,DIRECTIONAL,POSITIONAL,SPOT
114         end TypeOfLight ;
115         ---Purpose: Determines the type of light.
116
117         enumeration TypeOfUpdate is ASAP,WAIT
118         end TypeOfUpdate ;
119         ---Purpose: Determines the type of update of the view
120         -- -   V3d_ASAP: as soon as possible. The view is updated immediately after a modification.
121         -- -   V3d_WAIT: deferred. The view is updated when the Update function is called.
122
123         enumeration TypeOfAxe is X,Y,Z
124         end TypeOfAxe ;
125         ---Purpose: Determines the axis type through the coordinates X, Y, Z.
126
127         enumeration TypeOfOrientation is Xpos,Ypos,Zpos,Xneg,Yneg,Zneg,
128             XposYpos,XposZpos,YposZpos,XnegYneg,XnegYpos,XnegZneg,
129             XnegZpos,YnegZneg,YnegZpos,XposYneg,XposZneg,YposZneg,
130             XposYposZpos,XposYnegZpos,XposYposZneg,XnegYposZpos,
131             XposYnegZneg,XnegYposZneg,XnegYnegZpos,XnegYnegZneg
132         end TypeOfOrientation ;
133         ---Purpose: Determines the type of orientation.
134
135         enumeration TypeOfRepresentation is SIMPLE,COMPLETE,PARTIAL,SAMELAST
136         end TypeOfRepresentation;
137
138
139         enumeration TypeOfPickLight is POSITIONLIGHT,SPACELIGHT,
140             RADIUSTEXTLIGHT,ExtRADIUSLIGHT,IntRADIUSLIGHT,
141             NOTHING
142         end TypeOfPickLight;
143
144         enumeration TypeOfPickCamera is POSITIONCAMERA,SPACECAMERA,
145             RADIUSTEXTCAMERA,ExtRADIUSCAMERA,IntRADIUSCAMERA,
146             NOTHINGCAMERA
147         end TypeOfPickCamera;
148
149         enumeration TypeOfBackfacingModel is
150             TOBM_AUTOMATIC, TOBM_ALWAYS_DISPLAYED, TOBM_NEVER_DISPLAYED
151         end TypeOfBackfacingModel;
152         ---Purpose  : Modes of display of back faces in the view
153         --
154         --            TOBM_AUTOMATIC graphic's structure setting is in use
155         --            TOBM_ALWAYS_DISPLAYED     force display of back faces
156         --            TOBM_NEVER_DISPLAYED      disable display of back faces
157
158         enumeration StereoDumpOptions is
159             SDO_MONO,
160             SDO_LEFT_EYE,
161             SDO_RIGHT_EYE
162         end StereoDumpOptions;
163         ---Purpose : Options to be used with image dumping.
164         --
165         --            SDO_MONO dump monographic projection for stereo camera
166         --            SDO_LEFT_EYE dump left eye projection for stereo camera
167         --            SDO_RIGHT_EYE dump right eye projection for stereo camera
168
169         ------------------------
170         ---Category: The classes
171         ------------------------
172
173         class Viewer;
174
175         class View;
176
177         class LayerMgr;
178
179         deferred class Light;
180
181         class AmbientLight;
182
183         deferred class PositionLight;
184
185         class PositionalLight;
186
187         class DirectionalLight;
188
189         class SpotLight;
190
191         ---------------------------------
192         ---Category: Instantiated classes
193         ---------------------------------
194
195         imported ListOfTransient;
196
197         pointer ViewerPointer to Viewer from V3d;
198         pointer ViewPointer to View from V3d;
199         pointer LayerMgrPointer to LayerMgr from V3d;
200
201         private class RectangularGrid;
202         private class CircularGrid;
203
204         private class ColorScale;
205     private class ColorScaleLayerItem;
206
207         ---------------------------------
208         ---Category: Methodes de package
209         ---------------------------------
210
211         GetProjAxis( Orientation : TypeOfOrientation )
212                                 returns Vector from Graphic3d ;
213         ---Purpose: Determines the orientation vector corresponding
214         --          to the predefined orientation type.
215
216         ArrowOfRadius ( garrow   : Group from Graphic3d;
217                         X0,Y0,Z0 : Coordinate;
218                         DX,DY,DZ : Parameter;
219                         Alpha    : PlaneAngle from Quantity;
220                         Lng      : Parameter ) is protected;
221         ---Level: Advanced
222         ---Purpose: Compute the graphic structure of arrow.
223         --          X0,Y0,Z0 : coordinate of the arrow.
224         --          DX,DY,DZ : Direction of the arrow.
225         --          Alpha    : Angle of arrow.
226         --          Lng      : Length of arrow.
227
228         CircleInPlane ( gcircle  : Group from Graphic3d;
229                         X0,Y0,Z0 : Coordinate;
230                         VX,VY,VZ : Parameter;
231                         Radius   : Parameter ) is protected;
232         ---Level: Advanced
233         ---Purpose: Compute the graphic structure of circle.
234         --          X0,Y0,Z0 : Center of circle.
235         --          VX,VY,VZ : Axis of circle.
236         --          Radius   : Radius of circle.
237
238         SwitchViewsinWindow(aPreviousView: View from V3d;
239                             aNextView: View from V3d);
240
241
242         DrawSphere(aViewer: Viewer from V3d; aRadius: Length from Quantity =1000);
243         ---Purpose: test.
244
245         PickGrid(aViewer: Viewer from V3d; aRadius: Length from Quantity =1000);
246         ---Purpose: test.
247
248         SetPlane(aViewer: Viewer from V3d; x1,y1,z1,x2,y2,z2: Length from Quantity);
249         ---Purpose: test.
250
251 end V3d;
252