1 -- Created on: 1992-11-13
3 -- Copyright (c) 1992-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
6 -- This file is part of Open CASCADE Technology software library.
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.
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
18 -- Modified: stt:25-02-98; S3558: ajout ViewStdAdapter
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
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.
51 ------------------------------
52 ---Category: The extern types
53 ------------------------------
55 alias Coordinate is Length from Quantity;
56 ---Purpose: User-defined coordinate in the reference plane of
57 -- view (Projection or Mapping).
60 alias Parameter is Parameter from Quantity;
62 --------------------------
63 --Category: The Exceptions
64 --------------------------
66 exception BadValue inherits OutOfRange;
67 exception UnMapped inherits DomainError;
69 -----------------------------
70 ---Category: The Enumerations
71 -----------------------------
73 enumeration TypeOfView is ORTHOGRAPHIC,PERSPECTIVE
75 ---Purpose: Defines the type of projection of the view.
77 enumeration TypeOfShadingModel is COLOR,FLAT,GOURAUD,PHONG
78 end TypeOfShadingModel ;
80 -- Defines the type of shading for the graphic object:
81 -- - V3d_COLOR: simple surface color (Visual3d_TOM_NONE),
82 -- - V3d_FLAT: flat shading (Visual3d_TOM_FACET),
83 -- - V3d_GOURAUD: Gouraud shading (Visual3d_TOM_VERTEX),
84 -- - V3d_PHONG: Phong shading (Visual3d_TOM_FRAGMENT).
86 enumeration TypeOfSurfaceDetail is TEX_NONE, TEX_ENVIRONMENT, TEX_ALL
87 end TypeOfSurfaceDetail;
88 ---Purpose: Modes of visualization for objects in a view
89 -- - V3d_TEX_NONE: no texture mapping,
90 -- - V3d_TEX_ENVIRONMENT: environment mapping only,
91 -- - V3d_TEX_ALL: environment and texture mapping.
93 enumeration TypeOfVisualization is WIREFRAME,ZBUFFER
94 end TypeOfVisualization ;
95 ---Purpose: Determines the type of visualization in the view, either
96 -- WIREFRAME or ZBUFFER (shading).
98 enumeration TypeOfZclipping is OFF,BACK,FRONT,SLICE
99 -- Type "BACK" Remove rear part
100 -- Type "FRONT" Remove front part
101 -- "SLICE" Keep the slice between the front plane
102 -- plane depth + half the thickness
103 -- and the rear plane
104 -- plane depth - half the thickness.
105 -- "OFF" ZClipping deactivated.
106 end TypeOfZclipping ;
107 ---Purpose: The available options are
108 -- - V3d_OFF: Zclipping (clipping executed in the
109 -- depth of the view) is deactivated,
110 -- - V3d_BACK: back Zclipping is activated,
111 -- - V3d_FRONT: front Zclipping is activated,
112 -- - V3d_SLICE: both front and back Zclippings are activated.
114 enumeration TypeOfLight is AMBIENT,DIRECTIONAL,POSITIONAL,SPOT
116 ---Purpose: Determines the type of light.
118 enumeration TypeOfUpdate is ASAP,WAIT
120 ---Purpose: Determines the type of update of the view
121 -- - V3d_ASAP: as soon as possible. The view is updated immediately after a modification.
122 -- - V3d_WAIT: deferred. The view is updated when the Update function is called.
124 enumeration TypeOfAxe is X,Y,Z
126 ---Purpose: Determines the axis type through the coordinates X, Y, Z.
128 enumeration TypeOfOrientation is Xpos,Ypos,Zpos,Xneg,Yneg,Zneg,
129 XposYpos,XposZpos,YposZpos,XnegYneg,XnegYpos,XnegZneg,
130 XnegZpos,YnegZneg,YnegZpos,XposYneg,XposZneg,YposZneg,
131 XposYposZpos,XposYnegZpos,XposYposZneg,XnegYposZpos,
132 XposYnegZneg,XnegYposZneg,XnegYnegZpos,XnegYnegZneg
133 end TypeOfOrientation ;
134 ---Purpose: Determines the type of orientation.
136 enumeration TypeOfRepresentation is SIMPLE,COMPLETE,PARTIAL,SAMELAST
137 end TypeOfRepresentation;
140 enumeration TypeOfPickLight is POSITIONLIGHT,SPACELIGHT,
141 RADIUSTEXTLIGHT,ExtRADIUSLIGHT,IntRADIUSLIGHT,
145 enumeration TypeOfPickCamera is POSITIONCAMERA,SPACECAMERA,
146 RADIUSTEXTCAMERA,ExtRADIUSCAMERA,IntRADIUSCAMERA,
148 end TypeOfPickCamera;
150 enumeration TypeOfBackfacingModel is
151 TOBM_AUTOMATIC, TOBM_ALWAYS_DISPLAYED, TOBM_NEVER_DISPLAYED
152 end TypeOfBackfacingModel;
153 ---Purpose : Modes of display of back faces in the view
155 -- TOBM_AUTOMATIC graphic's structure setting is in use
156 -- TOBM_ALWAYS_DISPLAYED force display of back faces
157 -- TOBM_NEVER_DISPLAYED disable display of back faces
159 enumeration StereoDumpOptions is
163 end StereoDumpOptions;
164 ---Purpose : Options to be used with image dumping.
166 -- SDO_MONO dump monographic projection for stereo camera
167 -- SDO_LEFT_EYE dump left eye projection for stereo camera
168 -- SDO_RIGHT_EYE dump right eye projection for stereo camera
170 ------------------------
171 ---Category: The classes
172 ------------------------
180 deferred class Light;
184 deferred class PositionLight;
186 class PositionalLight;
188 class DirectionalLight;
192 ---------------------------------
193 ---Category: Instantiated classes
194 ---------------------------------
196 imported ListOfTransient;
198 pointer ViewerPointer to Viewer from V3d;
199 pointer ViewPointer to View from V3d;
200 pointer LayerMgrPointer to LayerMgr from V3d;
202 private class RectangularGrid;
203 private class CircularGrid;
205 private class ColorScale;
206 private class ColorScaleLayerItem;
208 ---------------------------------
209 ---Category: Methodes de package
210 ---------------------------------
212 GetProjAxis( Orientation : TypeOfOrientation )
213 returns Vector from Graphic3d ;
214 ---Purpose: Determines the orientation vector corresponding
215 -- to the predefined orientation type.
217 ArrowOfRadius ( garrow : Group from Graphic3d;
218 X0,Y0,Z0 : Coordinate;
219 DX,DY,DZ : Parameter;
220 Alpha : PlaneAngle from Quantity;
221 Lng : Parameter ) is protected;
223 ---Purpose: Compute the graphic structure of arrow.
224 -- X0,Y0,Z0 : coordinate of the arrow.
225 -- DX,DY,DZ : Direction of the arrow.
226 -- Alpha : Angle of arrow.
227 -- Lng : Length of arrow.
229 CircleInPlane ( gcircle : Group from Graphic3d;
230 X0,Y0,Z0 : Coordinate;
231 VX,VY,VZ : Parameter;
232 Radius : Parameter ) is protected;
234 ---Purpose: Compute the graphic structure of circle.
235 -- X0,Y0,Z0 : Center of circle.
236 -- VX,VY,VZ : Axis of circle.
237 -- Radius : Radius of circle.
239 SwitchViewsinWindow(aPreviousView: View from V3d;
240 aNextView: View from V3d);
243 DrawSphere(aViewer: Viewer from V3d; aRadius: Length from Quantity =1000);
246 PickGrid(aViewer: Viewer from V3d; aRadius: Length from Quantity =1000);
249 SetPlane(aViewer: Viewer from V3d; x1,y1,z1,x2,y2,z2: Length from Quantity);