0023272: Image comparison algorithm
[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 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         deferred class GraphicDriver;
298         ---Purpose: Defines a graphic driver (3d library)
299
300         class FontStyle;
301         ---Purpose: Defines a Font Style
302         ---Category: The classes
303
304         class FontMapEntry;
305         ---Purpose: Defines an entry in the Font map :
306         --          an index and a text Font.
307         ---Category: Classes Font map
308
309         class FontMap;
310         ---Purpose: Associates an index and a text Font entry.
311         ---Category: The classes
312
313         class WidthMapEntry;
314         ---Purpose: Defines an entry in the Width map :
315         --          an index and a line Width.
316         ---Category: Classes Width map
317
318         class WidthMap;
319         ---Purpose: Associates an index and a line width entry.
320         ---Category: The classes
321
322         class LineStyle;
323         ---Purpose: Defines a Line Style
324         ---Category: The classes
325
326         class TypeMap;
327         ---Purpose: Associates an index and a line type entry.
328         ---Category: The classes
329
330         class TypeMapEntry;
331         ---Purpose: Defines an entry in the Type map :
332         --          an index and a line style.
333         ---Category: Classes Type map
334
335         class MarkerStyle;
336         ---Purpose: Defines a Marker Style
337         ---Category: The classes
338
339         class MarkMap;
340         ---Purpose: Associates an index and a Marker entry.
341         ---Category: The classes
342
343         class MarkMapEntry;
344         ---Purpose: Defines an entry in the Marker map :
345         --          an index and a marker style.
346         ---Category: Classes Mark map
347
348         deferred class Window;
349         ---Purpose: Defines a window.
350         ---Category: Classes
351         
352         deferred class GraphicDevice;
353         ---Purpose: Defines a physical graphic device allowing to
354         --          shares graphical ressources.
355         ---Category: Classes
356
357         deferred class Driver;
358         ---Purpose: Defines a virtual driver.
359         ---Category: Classes
360
361         deferred class WindowDriver;
362         ---Purpose: Defines a virtual driver associated to a window.
363         ---Category: Classes
364
365         deferred class Grid;
366         class RectangularGrid;
367         class CircularGrid;
368
369         deferred class ColorScale;
370         ---Purpose: Defines a color scale for viewer.
371
372         -------------------------
373         -- Category: Enumerations
374         -------------------------
375
376         enumeration HatchStyle is       HS_HORIZONTAL,
377                                         HS_HORIZONTAL_WIDE,
378                                         HS_VERTICAL,
379                                         HS_VERTICAL_WIDE,
380                                         HS_DIAGONAL_45,
381                                         HS_DIAGONAL_45_WIDE,
382                                         HS_DIAGONAL_135,
383                                         HS_DIAGONAL_135_WIDE,
384                                         HS_GRID,
385                                         HS_GRID_WIDE,
386                                         HS_GRID_DIAGONAL,
387                                         HS_GRID_DIAGONAL_WIDE
388         end HatchStyle;
389         ---Purpose: Definition of all available hatch styles.
390         --
391         --          HS_HORIZONTAL
392         --          HS_HORIZONTAL_WIDE
393         --          HS_VERTICAL
394         --          HS_VERTICAL_WIDE
395         --          HS_DIAGONAL_45
396         --          HS_DIAGONAL_45_WIDE
397         --          HS_DIAGONAL_135
398         --          HS_DIAGONAL_135_WIDE
399         --          HS_GRID
400         --          HS_GRID_WIDE
401         --          HS_GRID_DIAGONAL
402         --          HS_GRID_DIAGONAL_WIDE
403         --
404         ---Category: Enumerations
405
406         enumeration InteriorStyle is    IS_EMPTY,
407                                         IS_HOLLOW,
408                                         IS_HATCH,
409                                         IS_SOLID,
410                                         IS_HIDDENLINE
411         end InteriorStyle;
412         ---Purpose: Definition of interior types for primitive
413         --          faces.
414         --
415         --          IS_EMPTY    no interior.
416         --          IS_HOLLOW   display the boundaries of the surface.
417         --          IS_HATCH    display hatched with a hatch style.
418         --          IS_SOLID    display the interior entirely filled.
419         --          IS_HIDDENLINE       display in hidden lines removed.
420         --
421         ---Category: Enumerations
422
423         enumeration TypeOfColorMap is   TOC_Generic,
424                                         TOC_ColorCube,
425                                         TOC_ColorRamp 
426         end TypeOfColorMap;
427         ---Purpose: Definition of the color map types
428         --
429         ---Category: Enumerations
430
431         enumeration TypeOfConstraint is TOC_BOTTOM_LEFT,
432                                         TOC_BOTTOM_RIGHT,
433                                         TOC_TOP_LEFT, 
434                                         TOC_TOP_RIGHT
435         end TypeOfConstraint;
436         ---Purpose: Definition of the attachment for the layers
437         --
438         ---Category: Enumerations
439
440         enumeration TypeOfDrawMode is   TODM_REPLACE,
441                                         TODM_ERASE,
442                                         TODM_XOR,
443                                         TODM_XORLIGHT
444         end TypeOfDrawMode;
445         ---Purpose: Definition of the draw modes
446         --
447         ---Category: Enumerations
448
449         enumeration TypeOfEdge is       TOE_VISIBLE,
450                                         TOE_INVISIBLE
451         end TypeOfEdge;
452         ---Purpose: Definition of edge visibility
453         --
454         --          TOE_VISIBLE         Edge is displayed
455         --          TOE_INVISIBLE       Edge is not displayed
456         --
457         ---Category: Enumerations
458
459         enumeration TypeOfHighlightMethod is    TOHM_COLOR,
460                                                 TOHM_BLINK,
461                                                 TOHM_BOUNDBOX
462         end TypeOfHighlightMethod;
463         ---Purpose: Definition of a highlight method
464         --
465         --          TOHM_COLOR          drawn in the highlight color
466         --                              (default white)
467         --          TOHM_BLINK          blinking
468         --          TOHM_BOUNDBOX       enclosed by the boundary box
469         --                              (default white)
470         --
471         ---Category: Enumerations
472
473         enumeration TypeOfLine is       TOL_SOLID,
474                                         TOL_DASH,
475                                         TOL_DOT,
476                                         TOL_DOTDASH,
477                                         TOL_USERDEFINED
478         end TypeOfLine;
479         ---Purpose: Definition of line types
480         --
481         --          TOL_SOLID           continuous
482         --          TOL_DASH            dashed 2.0,1.0 (MM)
483         --          TOL_DOT             dotted 0.2,0.5 (MM)
484         --          TOL_DOTDASH         mixed  10.0,1.0,2.0,1.0 (MM)
485         --          TOL_USERDEFINED     defined by Users
486         ---Category: Enumerations
487
488         enumeration WidthOfLine is      WOL_THIN,
489                                         WOL_MEDIUM,
490                                         WOL_THICK,
491                                         WOL_VERYTHICK,
492                                         WOL_USERDEFINED
493         end WidthOfLine;
494         ---Purpose: Definition of line types
495         --
496         --          WOL_THIN            thin line (1 pixel width)
497         --          WOL_MEDIUM          medium width of 0.5 MM
498         --          WOL_THICK           thick width of 0.7 MM
499         --          WOL_VERYTHICK       very thick width of 1.5 MM
500         --          WOL_USERDEFINED     defined by Users
501         ---Category: Enumerations
502
503         enumeration TypeOfFont is       TOF_DEFAULT,
504                                         TOF_COURIER,
505                                         TOF_HELVETICA,
506                                         TOF_TIMES,
507                                         TOF_USERDEFINED
508         end TypeOfFont;
509         ---Purpose: Definition of line types
510         --
511         --          TOF_DEFAULT         Default system font
512         --          TOF_COURIER         
513         --          TOF_HELVETICA       
514         --          TOF_USERDEFINED     defined by Users
515         ---Category: Enumerations
516
517         enumeration TypeOfText is       TOT_SOLID,
518                                         TOT_OUTLINE
519         end TypeOfText;
520         ---Purpose: Definition of Text types
521         --
522         --          TOF_SOLID           Default text 
523         --          TOF_OUTLINE         
524         ---Category: Enumerations
525
526         enumeration TypeOfStyleText is  TOST_NORMAL,
527                                         TOST_ANNOTATION
528         end TypeOfStyleText;
529         ---Purpose: Define the style of the text.       
530         --
531         --          TOST_NORMAL         Default text. The text is displayed like any other graphic object.
532         --                              This text can be hidden by another object that is nearest from the 
533         --                              point of view. 
534         --          TOST_ANNOTATION     The text is always visible. The texte is displayed 
535         --                              over the other object according to the priority.
536         ---Category: Enumerations
537
538         enumeration TypeOfDisplayText is        TODT_NORMAL,
539                                                 TODT_SUBTITLE,
540                                                 TODT_DEKALE,
541                                                 TODT_BLEND
542         end TypeOfDisplayText;
543         ---Purpose: Define the display type of the text.        
544         --
545         --          TODT_NORMAL         Default display. Text only.     
546         --          TODT_SUBTITLE       There is a subtitle under the text.
547         --          TODT_DEKALE         The text is displayed with a 3D style.
548         --          TODT_BLEND          The text is displayed in XOR.
549         ---Category: Enumerations
550
551         enumeration TypeOfMarker is     TOM_POINT,
552                                         TOM_PLUS,
553                                         TOM_STAR,
554                                         TOM_O,
555                                         TOM_X,
556                                         TOM_O_POINT,
557                                         TOM_O_PLUS,
558                                         TOM_O_STAR,
559                                         TOM_O_X,
560                                         TOM_BALL,
561                                         TOM_RING1,
562                                         TOM_RING2,
563                                         TOM_RING3,
564                                         TOM_USERDEFINED 
565         end TypeOfMarker;
566         ---Purpose: Definition of types of markers
567         --
568         --          TOM_POINT   point   .
569         --          TOM_PLUS    plus    +
570         --          TOM_STAR    star    *
571         --          TOM_O       circle  O
572         --          TOM_X       cross   x
573         --          TOM_O_POINT a point in a circle
574         --          TOM_O_PLUS  a plus in a circle
575         --          TOM_O_STAR  a star in a circle
576         --          TOM_O_X     a cross in a circle
577         --          TOM_BALL    a ball with 1 color and different saturations
578         --          TOM_RING1   a large ring
579         --          TOM_RING2   a medium ring
580         --          TOM_RING3   a small ring
581         --          TOM_USERDEFINED     defined by Users
582         --
583         ---Category: Enumerations
584
585         enumeration TypeOfUpdate is     TOU_ASAP,
586                                         TOU_WAIT
587         end TypeOfUpdate;
588         ---Purpose: Definition of screen refresh mode
589         --
590         --          TOU_ASAP    as soon as possible
591         --          TOU_WAIT    on demand (Update)
592         --
593         ---Category: Enumerations
594
595         enumeration TypeOfDeflection is TOD_RELATIVE,
596                                         TOD_ABSOLUTE
597         end TypeOfDeflection;
598         ---Purpose: Defines if the maximal chordial deflection used when
599         --          drawing an object is absolute  or relative to the size 
600         --          of the object.
601
602         enumeration TypeOfResize is     TOR_UNKNOWN,
603                                         TOR_NO_BORDER,
604                                         TOR_TOP_BORDER,
605                                         TOR_RIGHT_BORDER,
606                                         TOR_BOTTOM_BORDER,
607                                         TOR_LEFT_BORDER,
608                                         TOR_TOP_AND_RIGHT_BORDER,
609                                         TOR_RIGHT_AND_BOTTOM_BORDER,
610                                         TOR_BOTTOM_AND_LEFT_BORDER,
611                                         TOR_LEFT_AND_TOP_BORDER
612         end TypeOfResize;
613         ---Purpose: Defines the type of Resize Window method applied
614         --          by the user.
615
616         enumeration CardinalPoints is   CP_North,
617                                         CP_NorthEast,
618                                         CP_East,
619                                         CP_SouthEast,
620                                         CP_South,
621                                         CP_SouthWest,
622                                         CP_West,
623                                         CP_NorthWest,
624                                         CP_Center
625         end CardinalPoints;
626
627         enumeration TypeOfRenderingMode is TORM_IMMEDIAT,
628                                            TORM_RETAIN,
629                                            TORM_CLEAR_AND_RETAIN
630         end TypeOfRenderingMode;
631         ---Purpose: Definition of the rendering modes
632
633         enumeration TypeOfColorSpace is TOCS_BlackAndWhite,
634                                         TOCS_GreyScale,
635                                         TOCS_RGB
636         end TypeOfColorSpace;
637         ---Purpose:
638
639         enumeration FormatOfSheetPaper is
640                                         FOSP_A0,        -- 0.841 x 1.189   (M)
641                                         FOSP_A1,        -- 0.594 x 0.841   (M)
642                                         FOSP_A2,        -- 0.420 x 0.594   (M)
643                                         FOSP_A3,        -- 0.297 x 0.420   (M)
644                                         FOSP_A4,        -- 0.210 x 0.297   (M)
645                                         FOSP_A5,        -- 0.1485 x 0.210  (M)
646                                         FOSP_K_LONG,    -- 1.016 x 3.6322  (M)
647                                         FOSP_K_SHORT,   -- 1.016 x 1.397   (M)
648                                         FOSP_J_LONG,    -- 0.8636 x 4.4704 (M)
649                                         FOSP_J_SHORT,   -- 0.8636 x 1.397  (M)
650                                         FOSP_H_LONG,    -- 0.7112 x 3.6322 (M)
651                                         FOSP_H_SHORT,   -- 0.7112 x 1.1176 (M)
652                                         FOSP_G_LONG,    -- 0.2794 x 2.286  (M)
653                                         FOSP_G_SHORT,   -- 0.2794 x 0.5715 (M)
654                                         FOSP_F,         -- 0.7112 x 1.016  (M)
655                                         FOSP_E,         -- 0.8636 x 1.1176 (M)
656                                         FOSP_D,         -- 0.5588 x 0.8636 (M)
657                                         FOSP_C,         -- 0.4318 x 0.5588 (M)
658                                         FOSP_B,         -- 0.2794 x 0.4318 (M)
659                                         FOSP_A,         -- 0.2159 x 0.2794 (M)
660                                         FOSP_UNKNOWN    -- User defined
661         end FormatOfSheetPaper;
662         ---Purpose:
663
664         enumeration TypeOfPrimitive is
665                                         TOP_UNKNOWN,
666                                         TOP_POLYLINE,
667                                         TOP_POLYGON,
668                                         TOP_SEGMENTS,
669                                         TOP_ARCS,
670                                         TOP_POLYARCS,
671                                         TOP_POINTS,
672                                         TOP_MARKERS
673         end TypeOfPrimitive;
674         ---Purpose:
675
676         enumeration GridDrawMode is GDM_Lines,
677                                     GDM_Points,
678                                     GDM_None
679         end GridDrawMode;
680         ---Purpose: Defines the grid draw mode. The grid may be drawn
681         --          by using lines or points.
682
683         enumeration GridType is GT_Rectangular,
684                                 GT_Circular
685         end GridType;
686         ---Purpose: Defines the grid type : Rectangular or Circular.
687
688         --------- Start DCB modification ----------------------------------------
689         enumeration PlotMode is
690                                         PM_DPLOTTER,
691                                         PM_FILEONLY,
692                                         PM_NPLOTTER
693         end PlotMode;
694         ---Purpose: Defines plot mode for plotter drivers derived from
695         --          Aspect_PlotterDriver:
696         --          1) PM_DPLOTTER - send file to plotter and delete file
697         --          2) PM_FILEONLY - do not send file to the plotter
698         --          3) PM_NPLOTTER - send file to the plotter but not delete a file
699  
700   
701         enumeration ListingType is
702                                         LPID_DIRPLOT,
703                                         LPID_DIRPARPLO,
704                                         LPID_ALLDIRS
705         end ListingType;
706         ---Purpose: Defines where to search plotter files (PLO)
707
708       enumeration PlotterOrigin is
709         PO_CENTER,
710         PO_BOTTOMLEFT,
711         PO_TOPLEFT,
712         PO_TOPRIGHT,
713         PO_BOTTOMRIGHT,
714         PO_UNKNOWN
715       end PlotterOrigin;
716         --------- Stop  DCB modification ----------------------------------------
717
718
719         enumeration TypeOfTriedronEcho is       TOTE_NONE,
720                                                 TOTE_ORIGIN,
721                                                 TOTE_AXIS_X,
722                                                 TOTE_AXIS_Y,
723                                                 TOTE_AXIS_Z,
724                                                 TOTE_TEXT_X,
725                                                 TOTE_TEXT_Y,
726                                                 TOTE_TEXT_Z, 
727                                                 TOTE_01,
728                                                 TOTE_02,
729                                                 TOTE_03,
730                                                 TOTE_04,
731                                                 TOTE_05,
732                                                 TOTE_06,
733                                                 TOTE_07,
734                                                 TOTE_08,
735                                                 TOTE_09,
736                                                 TOTE_10
737         end TypeOfTriedronEcho;
738         ---Purpose: Definition of the Triedron echo zone to highlight
739         --
740         --          TOTE_NONE           no echo zone
741         --          TOTE_ORIGIN         a box on origin of the Triedron
742         --          TOTE_AXIS_X         highlights the X axis
743         --          TOTE_AXIS_Y         highlights the Y axis
744         --          TOTE_AXIS_Z         highlights the Z axis
745         --          TOTE_TEXT_X         highlights the X character
746         --          TOTE_TEXT_Y         highlights the Y character
747         --          TOTE_TEXT_Z         highlights the Z character
748         --          TOTE_01 to TOTE_10  not yet implemented.
749         ---Category: The enumerations
750
751
752         enumeration TypeOfTriedronPosition is   TOTP_CENTER,
753                                                 TOTP_LEFT_LOWER,
754                                                 TOTP_LEFT_UPPER,
755                                                 TOTP_RIGHT_LOWER,
756                                                 TOTP_RIGHT_UPPER,
757                                                 TOTP_01,
758                                                 TOTP_02,
759                                                 TOTP_03,
760                                                 TOTP_04,
761                                                 TOTP_05,
762                                                 TOTP_06,
763                                                 TOTP_07,
764                                                 TOTP_08,
765                                                 TOTP_09,
766                                                 TOTP_10
767         end TypeOfTriedronPosition;
768         ---Purpose: Definition of the Triedron position in the views
769         --
770         --          TOTP_CENTER         at the center of the view
771         --          TOTP_LEFT_LOWER     at the left lower corner
772         --          TOTP_LEFT_UPPER     at the left upper corner
773         --          TOTP_RIGHT_LOWER    at the right lower corner
774         --          TOTP_RIGHT_UPPER    at the right upper corner
775         --          TOTP_01 to TOTP_10  not yet implemented.
776         ---Category: The enumerations
777
778         enumeration TypeOfLayer is      TOL_OVERLAY, 
779                                         TOL_UNDERLAY
780         end TypeOfLayer;
781         ---Purpose: Modes of drawing for the objects in a layer
782         --
783         --          TOL_OVERLAY, the graphic of the layer is draw
784         --                       after the 3d graphic.
785         --          TOL_UNDERLAY, the graphic of the layer is draw
786         --                       before the 3d graphic.
787         ---Category: The enumerations
788
789         enumeration TypeOfFacingModel is TOFM_BOTH_SIDE,
790                                          TOFM_BACK_SIDE,
791                                          TOFM_FRONT_SIDE
792         end TypeOfFacingModel;
793
794         enumeration TypeOfDegenerateModel is
795          TDM_NONE,
796          TDM_TINY,
797          TDM_WIREFRAME,
798          TDM_MARKER,
799          TDM_BBOX,
800          TDM_AUTO
801         end TypeOfDegenerateModel;
802         ---Purpose: Defines type of degeneration model of the
803         --          graphic structure.
804         ---Category: The enumerations
805
806         enumeration FillMethod is
807           FM_NONE,
808           FM_CENTERED,
809           FM_TILED,
810           FM_STRETCH
811         end FillMethod;
812         ---Purpose: Defines the fill methods to
813         --      write bitmaps in a window.
814
815         enumeration GradientFillMethod is
816           GFM_NONE,
817           GFM_HOR,
818           GFM_VER,
819           GFM_DIAG1,
820           GFM_DIAG2,
821           GFM_CORNER1,
822           GFM_CORNER2,
823           GFM_CORNER3,
824           GFM_CORNER4
825         end GradientFillMethod;
826         ---Purpose: Defines the fill methods to
827         --      write gradient background in a window.
828
829         enumeration TypeOfColorScaleData is
830           TOCSD_AUTO,
831           TOCSD_USER
832         end TypeOfColorScaleData;
833         ---Purpose: Defines the using type of colors and labels
834
835         enumeration TypeOfColorScalePosition is
836           TOCSP_NONE,
837           TOCSP_LEFT,
838           TOCSP_RIGHT,
839           TOCSP_CENTER
840         end TypeOfColorScalePosition;
841         ---Purpose: Defines the type of position for color scale labels
842
843         enumeration TypeOfColorScaleOrientation is
844           TOCSO_NONE,
845           TOCSO_LEFT,
846           TOCSO_RIGHT,
847           TOCSO_CENTER
848         end TypeOfColorScaleOrientation;
849         ---Purpose: Defines the type of color scale orientation
850
851         enumeration PrintAlgo is
852           PA_STRETCH,
853           PA_TILE
854         end PrintAlgo;
855         ---Purpose: Defines print algorithm
856         --          Aspect_PrintAlgo:
857         --          1) PA_STRETCH - Stretch offscreen printing frame
858         --                          if its dimensions are smaller than
859         --                          the printer's printing area dimensions;
860         --                          This algorithm is more reliable as it
861         --                          works on any hardware and is recommended
862         --                          to be used with average printing resolutions,
863         --                          as it more RAM memory dependent than PA_TILE;
864         --                          Stretching is performend using bicubic interpolation
865         --                          algorithm from FreeImage library if OCCT is built
866         --                          with FreeImage support, otherwise Windows API 
867         --                          StretchBlt() function in STRETCH_HALFTONE mode
868         --                          is used;
869         --          2) PA_TILE    - If the offscreen printing frame dimensions
870         --                          are smaller than the printer's printing
871         --                          area dimensions - use multiple printing
872         --                          frames to cover the whole printing area
873
874         ---------------------------------
875         -- Category: Instantiated classes
876         ---------------------------------
877
878         class Array1OfEdge instantiates
879                 Array1 from TCollection (Edge from Aspect);
880         ---Category: Instantiated classes
881
882         class SequenceOfColorMapEntry instantiates
883                 Sequence from TCollection (ColorMapEntry from Aspect);
884         ---Category: Instantiated classes
885
886         class SequenceOfTypeMapEntry instantiates
887                 Sequence from TCollection (TypeMapEntry from Aspect);
888         ---Category: Instantiated classes
889
890         class SequenceOfWidthMapEntry instantiates
891                 Sequence from TCollection (WidthMapEntry from Aspect);
892         ---Category: Instantiated classes
893
894         class SequenceOfFontMapEntry instantiates
895                 Sequence from TCollection (FontMapEntry from Aspect);
896         ---Category: Instantiated classes
897
898         class SequenceOfMarkMapEntry instantiates
899                 Sequence from TCollection (MarkMapEntry from Aspect);
900         ---Category: Instantiated classes
901
902         class SequenceOfColor instantiates
903                 Sequence from TCollection(Color from Quantity);
904
905         ----------------------------
906         -- Category: Package methods
907         ----------------------------
908
909         ValuesOfFOSP (aFOSP : FormatOfSheetPaper from Aspect;
910                         aWidth, aHeight : out Length from Quantity)
911         returns CString from Standard;
912         ---Level: Internal
913         ---Purpose: Returns the format size according to the default 
914         --      LENGTH unit of the required format <aFOSP>.
915         --      Returns more the normalized format name.
916         ---Category: Package methods
917
918         ToCString (aString: ExtendedString from TCollection)
919                         returns CString from Standard;
920         ---Level: Internal
921         ---Purpose: Translates an ExtendedString to a CString
922         --          depending of the local format.
923         ---Category: Package methods
924
925         Inverse ( aMat : Array2OfReal from TColStd;
926                   Inv  : out Array2OfReal from TColStd )
927                 returns Boolean from Standard;
928         ---Level: Internal
929         ---Purpose: Inverses <aMat> a 4x4 matrix.
930
931 end Aspect;