0024023: Revamp the OCCT Handle -- ambiguity
[occt.git] / src / Aspect / Aspect.cdl
1 -- Created by: NW,JPB,CAL
2 -- Copyright (c) 1991-1999 Matra Datavision
3 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
4 --
5 -- This file is part of Open CASCADE Technology software library.
6 --
7 -- This library is free software; you can redistribute it and/or modify it under
8 -- the terms of the GNU Lesser General Public License version 2.1 as published
9 -- by the Free Software Foundation, with special exception defined in the file
10 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 -- distribution for complete text of the license and disclaimer of any warranty.
12 --
13 -- Alternatively, this file may be used under the terms of Open CASCADE
14 -- commercial license or contractual agreement.
15
16 package Aspect
17
18         ---Version:
19
20         ---Purpose: This package contains the group of graphic elements common
21         --          to different types of visualisers. It allows the description
22         --          of a screen background, a window, an edge, and groups of
23         --          graphic attributes that can be used in describing 2D
24         --          and 3D objects.
25
26         ---Keywords: Window, Aspect, FillArea, Line, Marker, Edge
27         --           Highlight, Hatch, Background, GradientBackground, Color map,
28         --           Type map, Width map, Font map
29         ---Warning:
30         ---References:
31
32 uses
33         TCollection,
34         TColStd,
35         TShort,
36         Quantity,
37         TColQuantity,
38         Resource,
39         MMgt
40
41 is
42         ---------------------------
43         -- Category: Imported types
44         ---------------------------
45         imported FStream;
46         -- waiting for RBA creating this class in Standard ...  
47
48         imported IFStream;
49         -- G002A study 
50
51         imported CLayer2d;
52
53         ---Category: Imported types
54
55         primitive Handle;
56         primitive Drawable;
57
58         primitive Display;
59
60         primitive RenderingContext;
61
62         imported GraphicCallbackProc;
63
64         -- 22-03-04 OCC4895 SAN High-level interface for controlling polygon offsets
65         imported PolygonOffsetMode;
66
67         -----------------------
68         -- Category: Exceptions
69         -----------------------
70
71         exception AspectLineDefinitionError inherits OutOfRange;
72         ---Category: Exceptions
73
74         exception AspectFillAreaDefinitionError inherits OutOfRange;
75         ---Category: Exceptions
76
77         exception AspectMarkerDefinitionError inherits OutOfRange;
78         ---Category: Exceptions
79
80         exception BadAccess inherits DomainError;
81         ---Category: Exceptions
82
83         exception IdentDefinitionError inherits OutOfRange;
84         ---Category: Exceptions
85
86         exception WindowDefinitionError inherits OutOfRange;
87         ---Category: The exceptions
88
89         exception WindowError inherits OutOfRange;
90         ---Category: The exceptions
91
92         exception DriverDefinitionError inherits OutOfRange;
93         ---Category: The exceptions
94
95         exception GraphicDeviceDefinitionError inherits OutOfRange;
96         ---Category: The exceptions
97
98         exception DisplayConnectionDefinitionError inherits OutOfRange;
99         ---Category: The exceptions
100
101         ---------------------------
102         -- Category: Classes Aspect
103         ---------------------------
104
105         deferred class AspectLine;
106         ---Category: Classes Aspect
107
108         deferred class AspectMarker;
109         ---Category: Classes Aspect
110
111         deferred class AspectFillArea;
112         ---Category: Classes Aspect
113
114         --------------------
115         -- Category: Classes
116         --------------------
117
118         class Background;
119         ---Category: Classes
120
121         class GradientBackground;
122         ---Category: Classes
123
124         class GenId;
125         ---Category: Classes
126
127         deferred class Window;
128         ---Category: Classes
129
130         deferred class Grid;
131         class RectangularGrid;
132         class CircularGrid;
133
134         deferred class ColorScale;
135
136         imported transient class DisplayConnection;
137
138         -------------------------
139         -- Category: Enumerations
140         -------------------------
141
142         enumeration HatchStyle is       HS_HORIZONTAL,
143                                         HS_HORIZONTAL_WIDE,
144                                         HS_VERTICAL,
145                                         HS_VERTICAL_WIDE,
146                                         HS_DIAGONAL_45,
147                                         HS_DIAGONAL_45_WIDE,
148                                         HS_DIAGONAL_135,
149                                         HS_DIAGONAL_135_WIDE,
150                                         HS_GRID,
151                                         HS_GRID_WIDE,
152                                         HS_GRID_DIAGONAL,
153                                         HS_GRID_DIAGONAL_WIDE
154         end HatchStyle;
155         ---Purpose: Definition of all available hatch styles.
156         --
157         --          HS_HORIZONTAL
158         --          HS_HORIZONTAL_WIDE
159         --          HS_VERTICAL
160         --          HS_VERTICAL_WIDE
161         --          HS_DIAGONAL_45
162         --          HS_DIAGONAL_45_WIDE
163         --          HS_DIAGONAL_135
164         --          HS_DIAGONAL_135_WIDE
165         --          HS_GRID
166         --          HS_GRID_WIDE
167         --          HS_GRID_DIAGONAL
168         --          HS_GRID_DIAGONAL_WIDE
169         --
170         ---Category: Enumerations
171
172         enumeration InteriorStyle is    IS_EMPTY,
173                                         IS_HOLLOW,
174                                         IS_HATCH,
175                                         IS_SOLID,
176                                         IS_HIDDENLINE,
177                                         IS_POINT
178         end InteriorStyle;
179         ---Purpose: Definition of interior types for primitive
180         --          faces.
181         --
182         --          IS_EMPTY    no interior.
183         --          IS_HOLLOW   display the boundaries of the surface.
184         --          IS_HATCH    display hatched with a hatch style.
185         --          IS_SOLID    display the interior entirely filled.
186         --          IS_HIDDENLINE       display in hidden lines removed.
187         --          IS_POINT            display only vertices.
188         --
189         ---Category: Enumerations
190
191         enumeration TypeOfConstraint is TOC_BOTTOM_LEFT,
192                                         TOC_BOTTOM_RIGHT,
193                                         TOC_TOP_LEFT, 
194                                         TOC_TOP_RIGHT
195         end TypeOfConstraint;
196         ---Purpose: Definition of the attachment for the layers
197         --
198         ---Category: Enumerations
199
200         enumeration TypeOfDrawMode is   TODM_REPLACE,
201                                         TODM_ERASE,
202                                         TODM_XOR,
203                                         TODM_XORLIGHT
204         end TypeOfDrawMode;
205         ---Purpose: Definition of the draw modes
206         --
207         ---Category: Enumerations
208
209         enumeration TypeOfEdge is       TOE_VISIBLE,
210                                         TOE_INVISIBLE
211         end TypeOfEdge;
212         ---Purpose: Definition of edge visibility
213         --
214         --          TOE_VISIBLE         Edge is displayed
215         --          TOE_INVISIBLE       Edge is not displayed
216         --
217         ---Category: Enumerations
218
219         enumeration TypeOfHighlightMethod is    TOHM_COLOR,
220                                                 TOHM_BOUNDBOX
221         end TypeOfHighlightMethod;
222         ---Purpose: Definition of a highlight method
223         --
224         --          TOHM_COLOR          drawn in the highlight color
225         --                              (default white)
226         --          TOHM_BOUNDBOX       enclosed by the boundary box
227         --                              (default white)
228         --
229         ---Category: Enumerations
230
231         enumeration TypeOfLine is       TOL_SOLID,
232                                         TOL_DASH,
233                                         TOL_DOT,
234                                         TOL_DOTDASH,
235                                         TOL_USERDEFINED
236         end TypeOfLine;
237         ---Purpose: Definition of line types
238         --
239         --          TOL_SOLID           continuous
240         --          TOL_DASH            dashed 2.0,1.0 (MM)
241         --          TOL_DOT             dotted 0.2,0.5 (MM)
242         --          TOL_DOTDASH         mixed  10.0,1.0,2.0,1.0 (MM)
243         --          TOL_USERDEFINED     defined by Users
244         ---Category: Enumerations
245
246         enumeration WidthOfLine is      WOL_THIN,
247                                         WOL_MEDIUM,
248                                         WOL_THICK,
249                                         WOL_VERYTHICK,
250                                         WOL_USERDEFINED
251         end WidthOfLine;
252         ---Purpose: Definition of line types
253         --
254         --          WOL_THIN            thin line (1 pixel width)
255         --          WOL_MEDIUM          medium width of 0.5 MM
256         --          WOL_THICK           thick width of 0.7 MM
257         --          WOL_VERYTHICK       very thick width of 1.5 MM
258         --          WOL_USERDEFINED     defined by Users
259         ---Category: Enumerations
260
261         enumeration TypeOfStyleText is  TOST_NORMAL,
262                                         TOST_ANNOTATION
263         end TypeOfStyleText;
264         ---Purpose: Define the style of the text.       
265         --
266         --          TOST_NORMAL         Default text. The text is displayed like any other graphic object.
267         --                              This text can be hidden by another object that is nearest from the 
268         --                              point of view. 
269         --          TOST_ANNOTATION     The text is always visible. The texte is displayed 
270         --                              over the other object according to the priority.
271         ---Category: Enumerations
272
273         enumeration TypeOfDisplayText is        TODT_NORMAL,
274                                                 TODT_SUBTITLE,
275                                                 TODT_DEKALE,
276                                                 TODT_BLEND,
277                                                 TODT_DIMENSION
278         end TypeOfDisplayText;
279         ---Purpose: Define the display type of the text.        
280         --
281         --          TODT_NORMAL         Default display. Text only.     
282         --          TODT_SUBTITLE       There is a subtitle under the text.
283         --          TODT_DEKALE         The text is displayed with a 3D style.
284         --          TODT_BLEND          The text is displayed in XOR.
285         --          TODT_DIMENSION      Dimension line under text will be invisible. 
286         ---Category: Enumerations
287
288         enumeration TypeOfMarker is     TOM_POINT,
289                                         TOM_PLUS,
290                                         TOM_STAR,
291                                         TOM_X,
292                                         TOM_O,
293                                         TOM_O_POINT,
294                                         TOM_O_PLUS,
295                                         TOM_O_STAR,
296                                         TOM_O_X,
297                                         TOM_RING1,
298                                         TOM_RING2,
299                                         TOM_RING3,
300                                         TOM_BALL,
301                                         TOM_USERDEFINED 
302         end TypeOfMarker;
303         ---Purpose: Definition of types of markers
304         --
305         --          TOM_POINT   point   .
306         --          TOM_PLUS    plus    +
307         --          TOM_STAR    star    *
308         --          TOM_X       cross   x
309         --          TOM_O       circle  O
310         --          TOM_O_POINT a point in a circle
311         --          TOM_O_PLUS  a plus in a circle
312         --          TOM_O_STAR  a star in a circle
313         --          TOM_O_X     a cross in a circle
314         --          TOM_RING1   a large ring
315         --          TOM_RING2   a medium ring
316         --          TOM_RING3   a small ring
317         --          TOM_BALL    a ball with 1 color and different saturations
318         --          TOM_USERDEFINED     defined by Users
319         --
320         ---Category: Enumerations
321
322         enumeration TypeOfUpdate is     TOU_ASAP,
323                                         TOU_WAIT
324         end TypeOfUpdate;
325         ---Purpose: Definition of screen refresh mode
326         --
327         --          TOU_ASAP    as soon as possible
328         --          TOU_WAIT    on demand (Update)
329         --
330         ---Category: Enumerations
331
332         enumeration TypeOfDeflection is TOD_RELATIVE,
333                                         TOD_ABSOLUTE
334         end TypeOfDeflection;
335         ---Purpose: Defines if the maximal chordial deflection used when
336         --          drawing an object is absolute  or relative to the size 
337         --          of the object.
338
339         enumeration TypeOfResize is     TOR_UNKNOWN,
340                                         TOR_NO_BORDER,
341                                         TOR_TOP_BORDER,
342                                         TOR_RIGHT_BORDER,
343                                         TOR_BOTTOM_BORDER,
344                                         TOR_LEFT_BORDER,
345                                         TOR_TOP_AND_RIGHT_BORDER,
346                                         TOR_RIGHT_AND_BOTTOM_BORDER,
347                                         TOR_BOTTOM_AND_LEFT_BORDER,
348                                         TOR_LEFT_AND_TOP_BORDER
349         end TypeOfResize;
350         ---Purpose: Defines the type of Resize Window method applied
351         --          by the user.
352
353         enumeration TypeOfPrimitive is
354                                         TOP_UNKNOWN,
355                                         TOP_POLYLINE,
356                                         TOP_POLYGON,
357                                         TOP_SEGMENTS,
358                                         TOP_ARCS,
359                                         TOP_POLYARCS,
360                                         TOP_POINTS,
361                                         TOP_MARKERS
362         end TypeOfPrimitive;
363         ---Purpose:
364
365         enumeration GridDrawMode is GDM_Lines,
366                                     GDM_Points,
367                                     GDM_None
368         end GridDrawMode;
369         ---Purpose: Defines the grid draw mode. The grid may be drawn
370         --          by using lines or points.
371
372         enumeration GridType is GT_Rectangular,
373                                 GT_Circular
374         end GridType;
375         ---Purpose: Defines the grid type : Rectangular or Circular.
376
377         enumeration TypeOfTriedronEcho is       TOTE_NONE,
378                                                 TOTE_ORIGIN,
379                                                 TOTE_AXIS_X,
380                                                 TOTE_AXIS_Y,
381                                                 TOTE_AXIS_Z,
382                                                 TOTE_TEXT_X,
383                                                 TOTE_TEXT_Y,
384                                                 TOTE_TEXT_Z, 
385                                                 TOTE_01,
386                                                 TOTE_02,
387                                                 TOTE_03,
388                                                 TOTE_04,
389                                                 TOTE_05,
390                                                 TOTE_06,
391                                                 TOTE_07,
392                                                 TOTE_08,
393                                                 TOTE_09,
394                                                 TOTE_10
395         end TypeOfTriedronEcho;
396         ---Purpose: Definition of the Triedron echo zone to highlight
397         --
398         --          TOTE_NONE           no echo zone
399         --          TOTE_ORIGIN         a box on origin of the Triedron
400         --          TOTE_AXIS_X         highlights the X axis
401         --          TOTE_AXIS_Y         highlights the Y axis
402         --          TOTE_AXIS_Z         highlights the Z axis
403         --          TOTE_TEXT_X         highlights the X character
404         --          TOTE_TEXT_Y         highlights the Y character
405         --          TOTE_TEXT_Z         highlights the Z character
406         --          TOTE_01 to TOTE_10  not yet implemented.
407         ---Category: The enumerations
408
409
410         enumeration TypeOfTriedronPosition is   TOTP_CENTER,
411                                                 TOTP_LEFT_LOWER,
412                                                 TOTP_LEFT_UPPER,
413                                                 TOTP_RIGHT_LOWER,
414                                                 TOTP_RIGHT_UPPER,
415                                                 TOTP_01,
416                                                 TOTP_02,
417                                                 TOTP_03,
418                                                 TOTP_04,
419                                                 TOTP_05,
420                                                 TOTP_06,
421                                                 TOTP_07,
422                                                 TOTP_08,
423                                                 TOTP_09,
424                                                 TOTP_10
425         end TypeOfTriedronPosition;
426         ---Purpose: Definition of the Triedron position in the views
427         --
428         --          TOTP_CENTER         at the center of the view
429         --          TOTP_LEFT_LOWER     at the left lower corner
430         --          TOTP_LEFT_UPPER     at the left upper corner
431         --          TOTP_RIGHT_LOWER    at the right lower corner
432         --          TOTP_RIGHT_UPPER    at the right upper corner
433         --          TOTP_01 to TOTP_10  not yet implemented.
434         ---Category: The enumerations
435
436         enumeration TypeOfLayer is      TOL_OVERLAY, 
437                                         TOL_UNDERLAY
438         end TypeOfLayer;
439         ---Purpose: Modes of drawing for the objects in a layer
440         --
441         --          TOL_OVERLAY, the graphic of the layer is draw
442         --                       after the 3d graphic.
443         --          TOL_UNDERLAY, the graphic of the layer is draw
444         --                       before the 3d graphic.
445         ---Category: The enumerations
446
447         enumeration TypeOfFacingModel is TOFM_BOTH_SIDE,
448                                          TOFM_BACK_SIDE,
449                                          TOFM_FRONT_SIDE
450         end TypeOfFacingModel;
451
452         enumeration FillMethod is
453           FM_NONE,
454           FM_CENTERED,
455           FM_TILED,
456           FM_STRETCH
457         end FillMethod;
458         ---Purpose: Defines the fill methods to
459         --      write bitmaps in a window.
460
461         enumeration GradientFillMethod is
462           GFM_NONE,
463           GFM_HOR,
464           GFM_VER,
465           GFM_DIAG1,
466           GFM_DIAG2,
467           GFM_CORNER1,
468           GFM_CORNER2,
469           GFM_CORNER3,
470           GFM_CORNER4
471         end GradientFillMethod;
472         ---Purpose: Defines the fill methods to
473         --      write gradient background in a window.
474
475         enumeration TypeOfColorScaleData is
476           TOCSD_AUTO,
477           TOCSD_USER
478         end TypeOfColorScaleData;
479         ---Purpose: Defines the using type of colors and labels
480
481         enumeration TypeOfColorScalePosition is
482           TOCSP_NONE,
483           TOCSP_LEFT,
484           TOCSP_RIGHT,
485           TOCSP_CENTER
486         end TypeOfColorScalePosition;
487         ---Purpose: Defines the type of position for color scale labels
488
489         enumeration TypeOfColorScaleOrientation is
490           TOCSO_NONE,
491           TOCSO_LEFT,
492           TOCSO_RIGHT,
493           TOCSO_CENTER
494         end TypeOfColorScaleOrientation;
495         ---Purpose: Defines the type of color scale orientation
496
497         enumeration PrintAlgo is
498           PA_STRETCH,
499           PA_TILE
500         end PrintAlgo;
501         ---Purpose: Defines print algorithm
502         --          Aspect_PrintAlgo:
503         --          1) PA_STRETCH - Stretch offscreen printing frame
504         --                          if its dimensions are smaller than
505         --                          the printer's printing area dimensions;
506         --                          This algorithm is more reliable as it
507         --                          works on any hardware and is recommended
508         --                          to be used with average printing resolutions,
509         --                          as it more RAM memory dependent than PA_TILE;
510         --                          Stretching is performend using bicubic interpolation
511         --                          algorithm from FreeImage library if OCCT is built
512         --                          with FreeImage support, otherwise Windows API 
513         --                          StretchBlt() function in STRETCH_HALFTONE mode
514         --                          is used;
515         --          2) PA_TILE    - If the offscreen printing frame dimensions
516         --                          are smaller than the printer's printing
517         --                          area dimensions - use multiple printing
518         --                          frames to cover the whole printing area
519         enumeration XAtom is
520           XA_DELETE_WINDOW
521         end XAtom;
522         ---Purpose: Defines custom identifiers(atoms) for X window custom named properties
523         ---------------------------------
524         -- Category: Instantiated classes
525         ---------------------------------
526
527         imported SequenceOfColor;
528
529 end Aspect;