c418b8b1481a055e7e005707dde8c07528ca598f
[occt.git] / src / Aspect / Aspect.cdl
1 -- Created by: NW,JPB,CAL
2 -- Copyright (c) 1991-1999 Matra Datavision
3 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
4 --
5 -- The content of this file is subject to the Open CASCADE Technology Public
6 -- License Version 6.5 (the "License"). You may not use the content of this file
7 -- except in compliance with the License. Please obtain a copy of the License
8 -- at http://www.opencascade.org and read it completely before using this file.
9 --
10 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
11 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
12 --
13 -- The Original Code and all software distributed under the License is
14 -- distributed on an "AS IS" basis, without warranty of any kind, and the
15 -- Initial Developer hereby disclaims all such warranties, including without
16 -- limitation, any warranties of merchantability, fitness for a particular
17 -- purpose or non-infringement. Please see the License for the specific terms
18 -- and conditions governing the rights and limitations under the License.
19
20 -- Package:     Aspect
21 -- Updated:     Vendredi 2 Octobre 1992
22 --              Mercredi 31 mars 1993
23 --              Lundi 16 janvier 1995 
24 -- Reason :     Traitement des Markers (G400)
25 -- Purpose:     Specifications definitives
26 -- Modified:    15/01/98 ; FMN : Ajout Hidden Line
27 -- Modified:    07/07/98 ; DCB : Adding plotmode enum
28 -- Modified: 07-07-98 by DCB (S3602 study)
29 --    Adding plotmode enum
30 -- Modified: 20-07-98 by DCB (S3602 study)
31 --   Adding Plotter and PlotterConfigTool classes
32 --   to plotters (PLO)
33 -- Modified: 22-07-98 by DCB
34 --   Adding DriverPtr, PlotterDriverPtr, WindowDriverPtr
35 --   pointers.
36 -- Modified: 24/08/98 ; CAL : S3892. Ajout grilles 3d.
37 -- Modified: 16-09-98 by BGN (S3989) 
38 ---   Adding TypeOfTriedronEcho, TypeOfTriedronPosition.
39 -- Modified: 30-11-98 ; FMN : S4069. Textes always visible.
40 -- Modified: 30/10/98 : DCB : S4046
41 --   Adding class PlotterParameter and changing the Plotter's class
42 --   implementation according to new PLO specifications (S3604 ???)
43 --   Also new classes : (H)Array1OfPlotterParameter
44 --   New enumeration : TypeOfPlotterParameter.
45 --   New exception : PlotterParameterError.
46 -- Modified: 25-NOV-98 : DCB
47 --   Removing all plotters specific implementation from Aspect.
48 --   These classes and enums will now be located in PlotMgt.
49 -- Modified: 17-NOV-99 : GG GER61351
50 --   Add TypeOfFacingModel enum 
51 -- Modified: 20-JAN-00 : GG 
52 --   Add GDM_None in enum GridDrawMode.
53 -- Modified: 25-JAN-00 : VKH
54 --   Add class PixMap
55 -- Modified: 23-FEB-00 : GG
56 --   Returns format name in ValuesOfFOSP() internal method.
57 -- Modified: 27-03-02 RIC120302 GG Add imported class 
58 -- Display, Drawable, RenderingContext, GraphicCallbackProc
59 -- Modified: 22-03-04 OCC4895 SAN High-level interface for controlling polygon offsets
60 -- Modified: 21-06-04 STV Added Aspect_ColorScale class
61
62 ------------------------------------------------------------------------
63
64 package Aspect
65
66         ---Version:
67
68         ---Purpose: This package contains the group of graphic elements common
69         --          to different types of visualisers. It allows the description
70         --          of a screen background, a window, an edge, and groups of
71         --          graphic attributes that can be used in describing 2D
72         --          and 3D objects.
73
74         ---Keywords: Window, Aspect, FillArea, Line, Marker, Edge
75         --           Highlight, Hatch, Background, GradientBackground, Color map,
76         --           Type map, Width map, Font map
77         ---Warning:
78         ---References:
79
80 uses
81         TCollection,
82         TColStd,
83         TShort,
84         Quantity,
85         TColQuantity,
86         Resource,
87         MMgt
88
89 is
90         ---------------------------
91         -- Category: Imported types
92         ---------------------------
93         imported FStream;
94         -- waiting for RBA creating this class in Standard ...  
95
96         imported IFStream;
97         -- G002A study 
98
99         imported CLayer2d;
100         ---Purpose: Defines the C structure <alayer>
101         ---Category: Imported types
102
103         imported RGBPixel;
104         ---Purpose:
105
106         primitive Handle;
107         primitive Drawable;
108         ---Purpose:
109         -- To manage Drawable
110
111         primitive Display;
112         ---Purpose:
113         -- To manage Display 
114
115         primitive RenderingContext;
116         ---Purpose:
117         -- To manage 2D or 3D graphic context
118
119         imported GraphicCallbackProc;
120         ---Purpose:
121         -- To manage client post display 
122
123         -- 22-03-04 OCC4895 SAN High-level interface for controlling polygon offsets
124         imported PolygonOffsetMode;
125         ---Purpose: 
126         -- Enumeration for polygon offset modes
127
128         ---------------------
129         -- Category: Pointers
130         ---------------------
131
132         pointer DriverPtr to Driver from Aspect;
133         pointer WindowDriverPtr to WindowDriver from Aspect;
134      
135         ---Category: Pointers
136
137         -----------------------
138         -- Category: Exceptions
139         -----------------------
140
141         exception AspectLineDefinitionError inherits OutOfRange;
142         ---Category: Exceptions
143
144         exception AspectFillAreaDefinitionError inherits OutOfRange;
145         ---Category: Exceptions
146
147         exception AspectMarkerDefinitionError inherits OutOfRange;
148         ---Category: Exceptions
149
150         exception BadAccess inherits DomainError;
151         ---Category: Exceptions
152
153         exception ColorMapDefinitionError inherits OutOfRange;
154         ---Category: The exceptions
155
156         exception EdgeDefinitionError inherits OutOfRange;
157         ---Category: Exceptions
158
159         exception IdentDefinitionError inherits OutOfRange;
160         ---Category: Exceptions
161
162         exception TypeMapDefinitionError inherits OutOfRange;
163         ---Category: The exceptions
164
165         exception WidthMapDefinitionError inherits OutOfRange;
166         ---Category: The exceptions
167
168         exception FontMapDefinitionError inherits OutOfRange;
169         ---Category: The exceptions
170
171         exception MarkMapDefinitionError inherits OutOfRange;
172         ---Category: The exceptions
173
174         exception WindowDefinitionError inherits OutOfRange;
175         ---Category: The exceptions
176
177         exception WindowError inherits OutOfRange;
178         ---Category: The exceptions
179
180         exception PixmapDefinitionError inherits OutOfRange;
181         ---Category: The exceptions
182
183         exception PixmapError inherits OutOfRange;
184         ---Category: The exceptions
185
186         exception DriverDefinitionError inherits OutOfRange;
187         ---Category: The exceptions
188
189         exception DriverError inherits OutOfRange;
190         ---Category: The exceptions
191
192         exception GraphicDeviceDefinitionError inherits OutOfRange;
193         ---Category: The exceptions
194
195         exception DisplayConnectionDefinitionError inherits OutOfRange;
196         ---Category: The exceptions
197
198         exception LineStyleDefinitionError inherits OutOfRange;
199         ---Category: Exceptions
200
201         exception LineWidthDefinitionError inherits OutOfRange;
202         ---Category: Exceptions
203
204         exception PolyStyleDefinitionError inherits OutOfRange;
205         ---Category: Exceptions
206
207         exception FontStyleDefinitionError inherits OutOfRange;
208         ---Category: Exceptions
209
210         exception MarkerStyleDefinitionError inherits OutOfRange;
211         ---Category: Exceptions
212
213         exception UndefinedMap inherits OutOfRange;
214         ---Category: Exceptions
215         
216         ------------------------------
217         -- Category: Classes Color map
218         ------------------------------
219
220         deferred class ColorMap;
221         ---Purpose: Defines a color map.
222         ---Category: Classes Color map
223
224         class ColorCubeColorMap;
225         ---Purpose: Associates a index and a color in the "ColorCube" space.
226         ---Category: Classes Color map
227
228         class ColorRampColorMap;
229         ---Purpose: Associates a index and a color in the linear "ColorRamp"
230         --          space.
231         ---Category: Classes Color map
232
233         class GenericColorMap;
234         ---Purpose: Associates an index and a color.
235         ---Category: Classes Color map
236
237         class ColorMapEntry;
238         ---Purpose: Defines an entry in the color map :
239         --          an index and a color.
240         ---Category: Classes Color map
241
242         ------------------------------
243         -- Category: Classes Pixel
244         ------------------------------
245
246         deferred class Pixel;
247         ---Purpose: Defines a picture element.
248         ---Category: Classes Pixel
249
250         class IndexPixel;
251         ---Purpose: 
252         ---Category: Classes Pixel
253
254         class ColorPixel;
255         ---Purpose: 
256         ---Category: Classes Pixel
257
258         ---------------------------
259         -- Category: Classes Aspect
260         ---------------------------
261
262         deferred class AspectLine;
263         ---Purpose: Creates and updates a group of graphic attributes
264         --          for primitives 'Line'
265         ---Category: Classes Aspect
266
267         deferred class AspectMarker;
268         ---Purpose: Creates and updates a group of graphic attributes
269         --          for primitives 'Marker'.
270         ---Category: Classes Aspect
271
272         deferred class AspectFillArea;
273         ---Purpose: Creates and updates a group of graphic attributes
274         --          for primitives 'Face'.
275         ---Category: Classes Aspect
276
277         --------------------
278         -- Category: Classes
279         --------------------
280
281         class Background;
282         ---Purpose: Defines a window background
283         ---Category: Classes
284
285         class GradientBackground;
286         ---Purpose: Defines a window gradient background
287         ---Category: Classes
288
289         class Edge;
290         ---Purpose: Defines an edge.
291         ---Category: Classes
292
293         class GenId;
294         ---Purpose: Creates and controles all identifiers.
295         ---Category: Classes
296
297         class FontStyle;
298         ---Purpose: Defines a Font Style
299         ---Category: The classes
300
301         class FontMapEntry;
302         ---Purpose: Defines an entry in the Font map :
303         --          an index and a text Font.
304         ---Category: Classes Font map
305
306         class FontMap;
307         ---Purpose: Associates an index and a text Font entry.
308         ---Category: The classes
309
310         class WidthMapEntry;
311         ---Purpose: Defines an entry in the Width map :
312         --          an index and a line Width.
313         ---Category: Classes Width map
314
315         class WidthMap;
316         ---Purpose: Associates an index and a line width entry.
317         ---Category: The classes
318
319         class LineStyle;
320         ---Purpose: Defines a Line Style
321         ---Category: The classes
322
323         class TypeMap;
324         ---Purpose: Associates an index and a line type entry.
325         ---Category: The classes
326
327         class TypeMapEntry;
328         ---Purpose: Defines an entry in the Type map :
329         --          an index and a line style.
330         ---Category: Classes Type map
331
332         class MarkerStyle;
333         ---Purpose: Defines a Marker Style
334         ---Category: The classes
335
336         class MarkMap;
337         ---Purpose: Associates an index and a Marker entry.
338         ---Category: The classes
339
340         class MarkMapEntry;
341         ---Purpose: Defines an entry in the Marker map :
342         --          an index and a marker style.
343         ---Category: Classes Mark map
344
345         deferred class Window;
346         ---Purpose: Defines a window.
347         ---Category: Classes
348
349         deferred class Driver;
350         ---Purpose: Defines a virtual driver.
351         ---Category: Classes
352
353         deferred class WindowDriver;
354         ---Purpose: Defines a virtual driver associated to a window.
355         ---Category: Classes
356
357         deferred class Grid;
358         class RectangularGrid;
359         class CircularGrid;
360
361         deferred class ColorScale;
362         ---Purpose: Defines a color scale for viewer.
363
364         imported DisplayConnection;
365         ---Purpose: Creates and provides connection with X server.
366
367         imported DisplayConnection_Handle;
368         ---Purpose: Handle for DisplayConnection;
369
370         -------------------------
371         -- Category: Enumerations
372         -------------------------
373
374         enumeration HatchStyle is       HS_HORIZONTAL,
375                                         HS_HORIZONTAL_WIDE,
376                                         HS_VERTICAL,
377                                         HS_VERTICAL_WIDE,
378                                         HS_DIAGONAL_45,
379                                         HS_DIAGONAL_45_WIDE,
380                                         HS_DIAGONAL_135,
381                                         HS_DIAGONAL_135_WIDE,
382                                         HS_GRID,
383                                         HS_GRID_WIDE,
384                                         HS_GRID_DIAGONAL,
385                                         HS_GRID_DIAGONAL_WIDE
386         end HatchStyle;
387         ---Purpose: Definition of all available hatch styles.
388         --
389         --          HS_HORIZONTAL
390         --          HS_HORIZONTAL_WIDE
391         --          HS_VERTICAL
392         --          HS_VERTICAL_WIDE
393         --          HS_DIAGONAL_45
394         --          HS_DIAGONAL_45_WIDE
395         --          HS_DIAGONAL_135
396         --          HS_DIAGONAL_135_WIDE
397         --          HS_GRID
398         --          HS_GRID_WIDE
399         --          HS_GRID_DIAGONAL
400         --          HS_GRID_DIAGONAL_WIDE
401         --
402         ---Category: Enumerations
403
404         enumeration InteriorStyle is    IS_EMPTY,
405                                         IS_HOLLOW,
406                                         IS_HATCH,
407                                         IS_SOLID,
408                                         IS_HIDDENLINE
409         end InteriorStyle;
410         ---Purpose: Definition of interior types for primitive
411         --          faces.
412         --
413         --          IS_EMPTY    no interior.
414         --          IS_HOLLOW   display the boundaries of the surface.
415         --          IS_HATCH    display hatched with a hatch style.
416         --          IS_SOLID    display the interior entirely filled.
417         --          IS_HIDDENLINE       display in hidden lines removed.
418         --
419         ---Category: Enumerations
420
421         enumeration TypeOfColorMap is   TOC_Generic,
422                                         TOC_ColorCube,
423                                         TOC_ColorRamp 
424         end TypeOfColorMap;
425         ---Purpose: Definition of the color map types
426         --
427         ---Category: Enumerations
428
429         enumeration TypeOfConstraint is TOC_BOTTOM_LEFT,
430                                         TOC_BOTTOM_RIGHT,
431                                         TOC_TOP_LEFT, 
432                                         TOC_TOP_RIGHT
433         end TypeOfConstraint;
434         ---Purpose: Definition of the attachment for the layers
435         --
436         ---Category: Enumerations
437
438         enumeration TypeOfDrawMode is   TODM_REPLACE,
439                                         TODM_ERASE,
440                                         TODM_XOR,
441                                         TODM_XORLIGHT
442         end TypeOfDrawMode;
443         ---Purpose: Definition of the draw modes
444         --
445         ---Category: Enumerations
446
447         enumeration TypeOfEdge is       TOE_VISIBLE,
448                                         TOE_INVISIBLE
449         end TypeOfEdge;
450         ---Purpose: Definition of edge visibility
451         --
452         --          TOE_VISIBLE         Edge is displayed
453         --          TOE_INVISIBLE       Edge is not displayed
454         --
455         ---Category: Enumerations
456
457         enumeration TypeOfHighlightMethod is    TOHM_COLOR,
458                                                 TOHM_BLINK,
459                                                 TOHM_BOUNDBOX
460         end TypeOfHighlightMethod;
461         ---Purpose: Definition of a highlight method
462         --
463         --          TOHM_COLOR          drawn in the highlight color
464         --                              (default white)
465         --          TOHM_BLINK          blinking
466         --          TOHM_BOUNDBOX       enclosed by the boundary box
467         --                              (default white)
468         --
469         ---Category: Enumerations
470
471         enumeration TypeOfLine is       TOL_SOLID,
472                                         TOL_DASH,
473                                         TOL_DOT,
474                                         TOL_DOTDASH,
475                                         TOL_USERDEFINED
476         end TypeOfLine;
477         ---Purpose: Definition of line types
478         --
479         --          TOL_SOLID           continuous
480         --          TOL_DASH            dashed 2.0,1.0 (MM)
481         --          TOL_DOT             dotted 0.2,0.5 (MM)
482         --          TOL_DOTDASH         mixed  10.0,1.0,2.0,1.0 (MM)
483         --          TOL_USERDEFINED     defined by Users
484         ---Category: Enumerations
485
486         enumeration WidthOfLine is      WOL_THIN,
487                                         WOL_MEDIUM,
488                                         WOL_THICK,
489                                         WOL_VERYTHICK,
490                                         WOL_USERDEFINED
491         end WidthOfLine;
492         ---Purpose: Definition of line types
493         --
494         --          WOL_THIN            thin line (1 pixel width)
495         --          WOL_MEDIUM          medium width of 0.5 MM
496         --          WOL_THICK           thick width of 0.7 MM
497         --          WOL_VERYTHICK       very thick width of 1.5 MM
498         --          WOL_USERDEFINED     defined by Users
499         ---Category: Enumerations
500
501         enumeration TypeOfFont is       TOF_DEFAULT,
502                                         TOF_COURIER,
503                                         TOF_HELVETICA,
504                                         TOF_TIMES,
505                                         TOF_USERDEFINED
506         end TypeOfFont;
507         ---Purpose: Definition of line types
508         --
509         --          TOF_DEFAULT         Default system font
510         --          TOF_COURIER         
511         --          TOF_HELVETICA       
512         --          TOF_USERDEFINED     defined by Users
513         ---Category: Enumerations
514
515         enumeration TypeOfText is       TOT_SOLID,
516                                         TOT_OUTLINE
517         end TypeOfText;
518         ---Purpose: Definition of Text types
519         --
520         --          TOF_SOLID           Default text 
521         --          TOF_OUTLINE         
522         ---Category: Enumerations
523
524         enumeration TypeOfStyleText is  TOST_NORMAL,
525                                         TOST_ANNOTATION
526         end TypeOfStyleText;
527         ---Purpose: Define the style of the text.       
528         --
529         --          TOST_NORMAL         Default text. The text is displayed like any other graphic object.
530         --                              This text can be hidden by another object that is nearest from the 
531         --                              point of view. 
532         --          TOST_ANNOTATION     The text is always visible. The texte is displayed 
533         --                              over the other object according to the priority.
534         ---Category: Enumerations
535
536         enumeration TypeOfDisplayText is        TODT_NORMAL,
537                                                 TODT_SUBTITLE,
538                                                 TODT_DEKALE,
539                                                 TODT_BLEND
540         end TypeOfDisplayText;
541         ---Purpose: Define the display type of the text.        
542         --
543         --          TODT_NORMAL         Default display. Text only.     
544         --          TODT_SUBTITLE       There is a subtitle under the text.
545         --          TODT_DEKALE         The text is displayed with a 3D style.
546         --          TODT_BLEND          The text is displayed in XOR.
547         ---Category: Enumerations
548
549         enumeration TypeOfMarker is     TOM_POINT,
550                                         TOM_PLUS,
551                                         TOM_STAR,
552                                         TOM_O,
553                                         TOM_X,
554                                         TOM_O_POINT,
555                                         TOM_O_PLUS,
556                                         TOM_O_STAR,
557                                         TOM_O_X,
558                                         TOM_BALL,
559                                         TOM_RING1,
560                                         TOM_RING2,
561                                         TOM_RING3,
562                                         TOM_USERDEFINED 
563         end TypeOfMarker;
564         ---Purpose: Definition of types of markers
565         --
566         --          TOM_POINT   point   .
567         --          TOM_PLUS    plus    +
568         --          TOM_STAR    star    *
569         --          TOM_O       circle  O
570         --          TOM_X       cross   x
571         --          TOM_O_POINT a point in a circle
572         --          TOM_O_PLUS  a plus in a circle
573         --          TOM_O_STAR  a star in a circle
574         --          TOM_O_X     a cross in a circle
575         --          TOM_BALL    a ball with 1 color and different saturations
576         --          TOM_RING1   a large ring
577         --          TOM_RING2   a medium ring
578         --          TOM_RING3   a small ring
579         --          TOM_USERDEFINED     defined by Users
580         --
581         ---Category: Enumerations
582
583         enumeration TypeOfUpdate is     TOU_ASAP,
584                                         TOU_WAIT
585         end TypeOfUpdate;
586         ---Purpose: Definition of screen refresh mode
587         --
588         --          TOU_ASAP    as soon as possible
589         --          TOU_WAIT    on demand (Update)
590         --
591         ---Category: Enumerations
592
593         enumeration TypeOfDeflection is TOD_RELATIVE,
594                                         TOD_ABSOLUTE
595         end TypeOfDeflection;
596         ---Purpose: Defines if the maximal chordial deflection used when
597         --          drawing an object is absolute  or relative to the size 
598         --          of the object.
599
600         enumeration TypeOfResize is     TOR_UNKNOWN,
601                                         TOR_NO_BORDER,
602                                         TOR_TOP_BORDER,
603                                         TOR_RIGHT_BORDER,
604                                         TOR_BOTTOM_BORDER,
605                                         TOR_LEFT_BORDER,
606                                         TOR_TOP_AND_RIGHT_BORDER,
607                                         TOR_RIGHT_AND_BOTTOM_BORDER,
608                                         TOR_BOTTOM_AND_LEFT_BORDER,
609                                         TOR_LEFT_AND_TOP_BORDER
610         end TypeOfResize;
611         ---Purpose: Defines the type of Resize Window method applied
612         --          by the user.
613
614         enumeration CardinalPoints is   CP_North,
615                                         CP_NorthEast,
616                                         CP_East,
617                                         CP_SouthEast,
618                                         CP_South,
619                                         CP_SouthWest,
620                                         CP_West,
621                                         CP_NorthWest,
622                                         CP_Center
623         end CardinalPoints;
624
625         enumeration TypeOfRenderingMode is TORM_IMMEDIAT,
626                                            TORM_RETAIN,
627                                            TORM_CLEAR_AND_RETAIN
628         end TypeOfRenderingMode;
629         ---Purpose: Definition of the rendering modes
630
631         enumeration TypeOfColorSpace is TOCS_BlackAndWhite,
632                                         TOCS_GreyScale,
633                                         TOCS_RGB
634         end TypeOfColorSpace;
635         ---Purpose:
636
637         enumeration FormatOfSheetPaper is
638                                         FOSP_A0,        -- 0.841 x 1.189   (M)
639                                         FOSP_A1,        -- 0.594 x 0.841   (M)
640                                         FOSP_A2,        -- 0.420 x 0.594   (M)
641                                         FOSP_A3,        -- 0.297 x 0.420   (M)
642                                         FOSP_A4,        -- 0.210 x 0.297   (M)
643                                         FOSP_A5,        -- 0.1485 x 0.210  (M)
644                                         FOSP_K_LONG,    -- 1.016 x 3.6322  (M)
645                                         FOSP_K_SHORT,   -- 1.016 x 1.397   (M)
646                                         FOSP_J_LONG,    -- 0.8636 x 4.4704 (M)
647                                         FOSP_J_SHORT,   -- 0.8636 x 1.397  (M)
648                                         FOSP_H_LONG,    -- 0.7112 x 3.6322 (M)
649                                         FOSP_H_SHORT,   -- 0.7112 x 1.1176 (M)
650                                         FOSP_G_LONG,    -- 0.2794 x 2.286  (M)
651                                         FOSP_G_SHORT,   -- 0.2794 x 0.5715 (M)
652                                         FOSP_F,         -- 0.7112 x 1.016  (M)
653                                         FOSP_E,         -- 0.8636 x 1.1176 (M)
654                                         FOSP_D,         -- 0.5588 x 0.8636 (M)
655                                         FOSP_C,         -- 0.4318 x 0.5588 (M)
656                                         FOSP_B,         -- 0.2794 x 0.4318 (M)
657                                         FOSP_A,         -- 0.2159 x 0.2794 (M)
658                                         FOSP_UNKNOWN    -- User defined
659         end FormatOfSheetPaper;
660         ---Purpose:
661
662         enumeration TypeOfPrimitive is
663                                         TOP_UNKNOWN,
664                                         TOP_POLYLINE,
665                                         TOP_POLYGON,
666                                         TOP_SEGMENTS,
667                                         TOP_ARCS,
668                                         TOP_POLYARCS,
669                                         TOP_POINTS,
670                                         TOP_MARKERS
671         end TypeOfPrimitive;
672         ---Purpose:
673
674         enumeration GridDrawMode is GDM_Lines,
675                                     GDM_Points,
676                                     GDM_None
677         end GridDrawMode;
678         ---Purpose: Defines the grid draw mode. The grid may be drawn
679         --          by using lines or points.
680
681         enumeration GridType is GT_Rectangular,
682                                 GT_Circular
683         end GridType;
684         ---Purpose: Defines the grid type : Rectangular or Circular.
685
686         --------- Start DCB modification ----------------------------------------
687         enumeration PlotMode is
688                                         PM_DPLOTTER,
689                                         PM_FILEONLY,
690                                         PM_NPLOTTER
691         end PlotMode;
692         ---Purpose: Defines plot mode for plotter drivers derived from
693         --          Aspect_PlotterDriver:
694         --          1) PM_DPLOTTER - send file to plotter and delete file
695         --          2) PM_FILEONLY - do not send file to the plotter
696         --          3) PM_NPLOTTER - send file to the plotter but not delete a file
697  
698   
699         enumeration ListingType is
700                                         LPID_DIRPLOT,
701                                         LPID_DIRPARPLO,
702                                         LPID_ALLDIRS
703         end ListingType;
704         ---Purpose: Defines where to search plotter files (PLO)
705
706       enumeration PlotterOrigin is
707         PO_CENTER,
708         PO_BOTTOMLEFT,
709         PO_TOPLEFT,
710         PO_TOPRIGHT,
711         PO_BOTTOMRIGHT,
712         PO_UNKNOWN
713       end PlotterOrigin;
714         --------- Stop  DCB modification ----------------------------------------
715
716
717         enumeration TypeOfTriedronEcho is       TOTE_NONE,
718                                                 TOTE_ORIGIN,
719                                                 TOTE_AXIS_X,
720                                                 TOTE_AXIS_Y,
721                                                 TOTE_AXIS_Z,
722                                                 TOTE_TEXT_X,
723                                                 TOTE_TEXT_Y,
724                                                 TOTE_TEXT_Z, 
725                                                 TOTE_01,
726                                                 TOTE_02,
727                                                 TOTE_03,
728                                                 TOTE_04,
729                                                 TOTE_05,
730                                                 TOTE_06,
731                                                 TOTE_07,
732                                                 TOTE_08,
733                                                 TOTE_09,
734                                                 TOTE_10
735         end TypeOfTriedronEcho;
736         ---Purpose: Definition of the Triedron echo zone to highlight
737         --
738         --          TOTE_NONE           no echo zone
739         --          TOTE_ORIGIN         a box on origin of the Triedron
740         --          TOTE_AXIS_X         highlights the X axis
741         --          TOTE_AXIS_Y         highlights the Y axis
742         --          TOTE_AXIS_Z         highlights the Z axis
743         --          TOTE_TEXT_X         highlights the X character
744         --          TOTE_TEXT_Y         highlights the Y character
745         --          TOTE_TEXT_Z         highlights the Z character
746         --          TOTE_01 to TOTE_10  not yet implemented.
747         ---Category: The enumerations
748
749
750         enumeration TypeOfTriedronPosition is   TOTP_CENTER,
751                                                 TOTP_LEFT_LOWER,
752                                                 TOTP_LEFT_UPPER,
753                                                 TOTP_RIGHT_LOWER,
754                                                 TOTP_RIGHT_UPPER,
755                                                 TOTP_01,
756                                                 TOTP_02,
757                                                 TOTP_03,
758                                                 TOTP_04,
759                                                 TOTP_05,
760                                                 TOTP_06,
761                                                 TOTP_07,
762                                                 TOTP_08,
763                                                 TOTP_09,
764                                                 TOTP_10
765         end TypeOfTriedronPosition;
766         ---Purpose: Definition of the Triedron position in the views
767         --
768         --          TOTP_CENTER         at the center of the view
769         --          TOTP_LEFT_LOWER     at the left lower corner
770         --          TOTP_LEFT_UPPER     at the left upper corner
771         --          TOTP_RIGHT_LOWER    at the right lower corner
772         --          TOTP_RIGHT_UPPER    at the right upper corner
773         --          TOTP_01 to TOTP_10  not yet implemented.
774         ---Category: The enumerations
775
776         enumeration TypeOfLayer is      TOL_OVERLAY, 
777                                         TOL_UNDERLAY
778         end TypeOfLayer;
779         ---Purpose: Modes of drawing for the objects in a layer
780         --
781         --          TOL_OVERLAY, the graphic of the layer is draw
782         --                       after the 3d graphic.
783         --          TOL_UNDERLAY, the graphic of the layer is draw
784         --                       before the 3d graphic.
785         ---Category: The enumerations
786
787         enumeration TypeOfFacingModel is TOFM_BOTH_SIDE,
788                                          TOFM_BACK_SIDE,
789                                          TOFM_FRONT_SIDE
790         end TypeOfFacingModel;
791
792         enumeration FillMethod is
793           FM_NONE,
794           FM_CENTERED,
795           FM_TILED,
796           FM_STRETCH
797         end FillMethod;
798         ---Purpose: Defines the fill methods to
799         --      write bitmaps in a window.
800
801         enumeration GradientFillMethod is
802           GFM_NONE,
803           GFM_HOR,
804           GFM_VER,
805           GFM_DIAG1,
806           GFM_DIAG2,
807           GFM_CORNER1,
808           GFM_CORNER2,
809           GFM_CORNER3,
810           GFM_CORNER4
811         end GradientFillMethod;
812         ---Purpose: Defines the fill methods to
813         --      write gradient background in a window.
814
815         enumeration TypeOfColorScaleData is
816           TOCSD_AUTO,
817           TOCSD_USER
818         end TypeOfColorScaleData;
819         ---Purpose: Defines the using type of colors and labels
820
821         enumeration TypeOfColorScalePosition is
822           TOCSP_NONE,
823           TOCSP_LEFT,
824           TOCSP_RIGHT,
825           TOCSP_CENTER
826         end TypeOfColorScalePosition;
827         ---Purpose: Defines the type of position for color scale labels
828
829         enumeration TypeOfColorScaleOrientation is
830           TOCSO_NONE,
831           TOCSO_LEFT,
832           TOCSO_RIGHT,
833           TOCSO_CENTER
834         end TypeOfColorScaleOrientation;
835         ---Purpose: Defines the type of color scale orientation
836
837         enumeration PrintAlgo is
838           PA_STRETCH,
839           PA_TILE
840         end PrintAlgo;
841         ---Purpose: Defines print algorithm
842         --          Aspect_PrintAlgo:
843         --          1) PA_STRETCH - Stretch offscreen printing frame
844         --                          if its dimensions are smaller than
845         --                          the printer's printing area dimensions;
846         --                          This algorithm is more reliable as it
847         --                          works on any hardware and is recommended
848         --                          to be used with average printing resolutions,
849         --                          as it more RAM memory dependent than PA_TILE;
850         --                          Stretching is performend using bicubic interpolation
851         --                          algorithm from FreeImage library if OCCT is built
852         --                          with FreeImage support, otherwise Windows API 
853         --                          StretchBlt() function in STRETCH_HALFTONE mode
854         --                          is used;
855         --          2) PA_TILE    - If the offscreen printing frame dimensions
856         --                          are smaller than the printer's printing
857         --                          area dimensions - use multiple printing
858         --                          frames to cover the whole printing area
859         enumeration XAtom is
860           XA_DELETE_WINDOW
861         end XAtom;
862         ---Purpose: Defines custom identifiers(atoms) for X window custom named properties
863         ---------------------------------
864         -- Category: Instantiated classes
865         ---------------------------------
866
867         class Array1OfEdge instantiates
868                 Array1 from TCollection (Edge from Aspect);
869         ---Category: Instantiated classes
870
871         class SequenceOfColorMapEntry instantiates
872                 Sequence from TCollection (ColorMapEntry from Aspect);
873         ---Category: Instantiated classes
874
875         class SequenceOfTypeMapEntry instantiates
876                 Sequence from TCollection (TypeMapEntry from Aspect);
877         ---Category: Instantiated classes
878
879         class SequenceOfWidthMapEntry instantiates
880                 Sequence from TCollection (WidthMapEntry from Aspect);
881         ---Category: Instantiated classes
882
883         class SequenceOfFontMapEntry instantiates
884                 Sequence from TCollection (FontMapEntry from Aspect);
885         ---Category: Instantiated classes
886
887         class SequenceOfMarkMapEntry instantiates
888                 Sequence from TCollection (MarkMapEntry from Aspect);
889         ---Category: Instantiated classes
890
891         class SequenceOfColor instantiates
892                 Sequence from TCollection(Color from Quantity);
893
894         ----------------------------
895         -- Category: Package methods
896         ----------------------------
897
898         ValuesOfFOSP (aFOSP : FormatOfSheetPaper from Aspect;
899                         aWidth, aHeight : out Length from Quantity)
900         returns CString from Standard;
901         ---Level: Internal
902         ---Purpose: Returns the format size according to the default 
903         --      LENGTH unit of the required format <aFOSP>.
904         --      Returns more the normalized format name.
905         ---Category: Package methods
906
907         ToCString (aString: ExtendedString from TCollection)
908                         returns CString from Standard;
909         ---Level: Internal
910         ---Purpose: Translates an ExtendedString to a CString
911         --          depending of the local format.
912         ---Category: Package methods
913
914         Inverse ( aMat : Array2OfReal from TColStd;
915                   Inv  : out Array2OfReal from TColStd )
916                 returns Boolean from Standard;
917         ---Level: Internal
918         ---Purpose: Inverses <aMat> a 4x4 matrix.
919
920 end Aspect;