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