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.
49 ------------------------------
50 ---Category: The extern types
51 ------------------------------
53 alias Coordinate is Length from Quantity;
54 ---Purpose: User-defined coordinate in the reference plane of
55 -- view (Projection or Mapping).
58 alias Parameter is Parameter from Quantity;
60 --------------------------
61 --Category: The Exceptions
62 --------------------------
64 exception BadValue inherits OutOfRange;
65 exception UnMapped inherits DomainError;
67 -----------------------------
68 ---Category: The Enumerations
69 -----------------------------
71 enumeration TypeOfView is ORTHOGRAPHIC,PERSPECTIVE
73 ---Purpose: Defines the type of projection of the view.
75 enumeration TypeOfShadingModel is COLOR,FLAT,GOURAUD,PHONG
76 end TypeOfShadingModel ;
78 -- Defines the type of shading for the graphic object:
79 -- - V3d_COLOR: simple surface color (Visual3d_TOM_NONE),
80 -- - V3d_FLAT: flat shading (Visual3d_TOM_FACET),
81 -- - V3d_GOURAUD: Gouraud shading (Visual3d_TOM_VERTEX),
82 -- - V3d_PHONG: Phong shading (Visual3d_TOM_FRAGMENT).
84 enumeration TypeOfSurfaceDetail is TEX_NONE, TEX_ENVIRONMENT, TEX_ALL
85 end TypeOfSurfaceDetail;
86 ---Purpose: Modes of visualization for objects in a view
87 -- - V3d_TEX_NONE: no texture mapping,
88 -- - V3d_TEX_ENVIRONMENT: environment mapping only,
89 -- - V3d_TEX_ALL: environment and texture mapping.
91 enumeration TypeOfVisualization is WIREFRAME,ZBUFFER
92 end TypeOfVisualization ;
93 ---Purpose: Determines the type of visualization in the view, either
94 -- WIREFRAME or ZBUFFER (shading).
96 enumeration TypeOfZclipping is OFF,BACK,FRONT,SLICE
97 -- Type "BACK" Remove rear part
98 -- Type "FRONT" Remove front part
99 -- "SLICE" Keep the slice between the front plane
100 -- plane depth + half the thickness
101 -- and the rear plane
102 -- plane depth - half the thickness.
103 -- "OFF" ZClipping deactivated.
104 end TypeOfZclipping ;
105 ---Purpose: The available options are
106 -- - V3d_OFF: Zclipping (clipping executed in the
107 -- depth of the view) is deactivated,
108 -- - V3d_BACK: back Zclipping is activated,
109 -- - V3d_FRONT: front Zclipping is activated,
110 -- - V3d_SLICE: both front and back Zclippings are activated.
112 enumeration TypeOfLight is AMBIENT,DIRECTIONAL,POSITIONAL,SPOT
114 ---Purpose: Determines the type of light.
116 enumeration TypeOfUpdate is ASAP,WAIT
118 ---Purpose: Determines the type of update of the view
119 -- - V3d_ASAP: as soon as possible. The view is updated immediately after a modification.
120 -- - V3d_WAIT: deferred. The view is updated when the Update function is called.
122 enumeration TypeOfAxe is X,Y,Z
124 ---Purpose: Determines the axis type through the coordinates X, Y, Z.
126 enumeration TypeOfOrientation is Xpos,Ypos,Zpos,Xneg,Yneg,Zneg,
127 XposYpos,XposZpos,YposZpos,XnegYneg,XnegYpos,XnegZneg,
128 XnegZpos,YnegZneg,YnegZpos,XposYneg,XposZneg,YposZneg,
129 XposYposZpos,XposYnegZpos,XposYposZneg,XnegYposZpos,
130 XposYnegZneg,XnegYposZneg,XnegYnegZpos,XnegYnegZneg
131 end TypeOfOrientation ;
132 ---Purpose: Determines the type of orientation.
134 enumeration TypeOfRepresentation is SIMPLE,COMPLETE,PARTIAL,SAMELAST
135 end TypeOfRepresentation;
138 enumeration TypeOfPickLight is POSITIONLIGHT,SPACELIGHT,
139 RADIUSTEXTLIGHT,ExtRADIUSLIGHT,IntRADIUSLIGHT,
143 enumeration TypeOfPickCamera is POSITIONCAMERA,SPACECAMERA,
144 RADIUSTEXTCAMERA,ExtRADIUSCAMERA,IntRADIUSCAMERA,
146 end TypeOfPickCamera;
148 enumeration TypeOfBackfacingModel is
149 TOBM_AUTOMATIC, TOBM_ALWAYS_DISPLAYED, TOBM_NEVER_DISPLAYED
150 end TypeOfBackfacingModel;
151 ---Purpose : Modes of display of back faces in the view
153 -- TOBM_AUTOMATIC graphic's structure setting is in use
154 -- TOBM_ALWAYS_DISPLAYED force display of back faces
155 -- TOBM_NEVER_DISPLAYED disable display of back faces
157 enumeration StereoDumpOptions is
161 end StereoDumpOptions;
162 ---Purpose : Options to be used with image dumping.
164 -- SDO_MONO dump monographic projection for stereo camera
165 -- SDO_LEFT_EYE dump left eye projection for stereo camera
166 -- SDO_RIGHT_EYE dump right eye projection for stereo camera
168 ------------------------
169 ---Category: The classes
170 ------------------------
178 deferred class Light;
182 deferred class PositionLight;
184 class PositionalLight;
186 class DirectionalLight;
190 ---------------------------------
191 ---Category: Instantiated classes
192 ---------------------------------
194 imported ListOfTransient;
196 pointer ViewerPointer to Viewer from V3d;
197 pointer ViewPointer to View from V3d;
198 pointer LayerMgrPointer to LayerMgr from V3d;
200 private class RectangularGrid;
201 private class CircularGrid;
203 private class ColorScale;
204 private class ColorScaleLayerItem;
206 ---------------------------------
207 ---Category: Methodes de package
208 ---------------------------------
210 GetProjAxis( Orientation : TypeOfOrientation )
211 returns Vector from Graphic3d ;
212 ---Purpose: Determines the orientation vector corresponding
213 -- to the predefined orientation type.
215 ArrowOfRadius ( garrow : Group from Graphic3d;
216 X0,Y0,Z0 : Coordinate;
217 DX,DY,DZ : Parameter;
218 Alpha : PlaneAngle from Quantity;
219 Lng : Parameter ) is protected;
221 ---Purpose: Compute the graphic structure of arrow.
222 -- X0,Y0,Z0 : coordinate of the arrow.
223 -- DX,DY,DZ : Direction of the arrow.
224 -- Alpha : Angle of arrow.
225 -- Lng : Length of arrow.
227 CircleInPlane ( gcircle : Group from Graphic3d;
228 X0,Y0,Z0 : Coordinate;
229 VX,VY,VZ : Parameter;
230 Radius : Parameter ) is protected;
232 ---Purpose: Compute the graphic structure of circle.
233 -- X0,Y0,Z0 : Center of circle.
234 -- VX,VY,VZ : Axis of circle.
235 -- Radius : Radius of circle.
237 SwitchViewsinWindow(aPreviousView: View from V3d;
238 aNextView: View from V3d);
241 DrawSphere(aViewer: Viewer from V3d; aRadius: Length from Quantity =1000);
244 PickGrid(aViewer: Viewer from V3d; aRadius: Length from Quantity =1000);
247 SetPlane(aViewer: Viewer from V3d; x1,y1,z1,x2,y2,z2: Length from Quantity);