41bfa79da839426015f0b0d723f52945688b36bb
[occt.git] / src / Prs3d / Prs3d.cdl
1 -- Created on: 1992-08-26
2 -- Created by: Jean Louis FRENKEL
3 -- Copyright (c) 1992-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
8 -- This library is free software; you can redistribute it and/or modify it under
9 -- the terms of the GNU Lesser General Public License version 2.1 as published
10 -- by the Free Software Foundation, with special exception defined in the file
11 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 -- distribution for complete text of the license and disclaimer of any warranty.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 package Prs3d
18
19       ---Purpose: The Prs3d package provides the following services
20   -- -   a presentation object (the context for all
21   --   modifications to the display, its presentation will be
22   --   displayed in every view of an active viewer)
23   -- -   an attribute manager governing how objects such
24   --   as color, width, and type of line are displayed;
25   --   these are generic objects, whereas those in
26   --   StdPrs are specific geometries and topologies.
27   -- -   generic   algorithms providing default settings for
28   --   objects such as points, curves, surfaces and shapes
29   -- -   a root object which provides the abstract
30   --   framework for the DsgPrs definitions at work in
31   --   display of dimensions, relations and trihedra.
32     
33 uses
34   Graphic3d,
35   Aspect,
36   Quantity,
37   MMgt,
38   Standard,
39   Adaptor3d,
40   BRepAdaptor,
41   Geom,
42   CPnts,
43   GCPnts,
44   TopAbs,
45   TopLoc,
46   TopoDS,
47   TopTools,
48   TopExp,
49   HLRAlgo,
50   TCollection,
51   TColgp,
52   Bnd,
53   gp,
54   Poly,
55   TColStd
56 is  
57   exception InvalidAngle inherits RangeError from Standard;
58
59   enumeration TypeOfLinePicking is TOLP_Point,
60                                    TOLP_Segment
61   end TypeOfLinePicking;
62         
63   enumeration TypeOfHLR is TOH_NotSet,
64                            TOH_PolyAlgo,
65                            TOH_Algo;
66   ---Purpose: Declares types of hidden line removal algorithm.
67   --          TOH_Algo enables using of exact HLR algorithm.
68   --          TOH_PolyAlgo enables using of polygonal HLR algorithm.
69   --          TOH_NotSet is used by AIS_Drawer class, it means that the drawer should return the global value.
70   --          For more details see AIS_Drawer class, AIS_Shape::Compute() method and
71   --          HLRAlgo package from TKHLR toolkit.
72   
73   enumeration DimensionTextHorizontalPosition is DTHP_Left, DTHP_Right, DTHP_Center, DTHP_Fit;
74   ---Purpose: Specifies options for positioning dimension value label in horizontal direction.
75   -- DTHP_Left   - value label located at left side on dimension extension.
76   -- DTHP_Right  - value label located at right side on dimension extension.
77   -- DTHP_Center - value label located at center of dimension line.
78   -- DTHP_Fit    - value label located automatically at left side if does not fits
79   --               the dimension space, otherwise the value label is placed at center.
80
81   enumeration DimensionTextVerticalPosition is DTVP_Above, DTVP_Below, DTVP_Center;
82   ---Purpose: Specifies options for positioning dimension value label in vertical direction
83   -- with respect to dimension (extension) line.
84   -- DTVP_Above - text label is located above the dimension or extension line.
85   -- DTVP_Below - text label is located below the dimension or extension line.
86   -- DTVP_Center - the text label middle-point is in line with dimension or extension line.
87
88   enumeration DimensionArrowOrientation is DAO_Internal, DAO_External, DAO_Fit;
89   ---Purpose: Specifies dimension arrow location and orientation.
90   -- DAO_Internal - arrows "inside", pointing outwards.
91   -- DAO_External - arrows "outside", pointing inwards.
92   -- DAO_Fit      - arrows oriented inside if value label with arrowtips fit the dimension line,
93   --                otherwise - externally
94
95   class Presentation;
96
97   ---Category: Aspect classes.
98
99   deferred class BasicAspect;   
100   class PointAspect;
101   class LineAspect;
102   class ShadingAspect;
103   class TextAspect;
104   class IsoAspect;
105   class ArrowAspect;
106   class PlaneAspect;
107   class DimensionAspect;
108   class DatumAspect;
109   imported DimensionUnits;
110
111   class Drawer;
112
113   class Projector;
114
115   class PlaneSet;
116
117   deferred class Root;
118
119   ---Category: Basis construction elements.
120
121   class Text;
122
123         ---Category: Class signatures.
124
125   class ShapeTool;
126
127   class Arrow;
128   ---Purpose: draws an arrow at a given location, with respect
129   --          to a given direction.
130
131   imported NListOfSequenceOfPnt; 
132   imported NListIteratorListOfSequenceOfPnt;
133   imported Point;
134   imported WFShape;
135   
136   MatchSegment(X,Y,Z: Length from Quantity;
137               aDistance: Length from Quantity;
138               p1,p2: Pnt from gp;
139               dist: out Length from Quantity)
140   returns Boolean from Standard;
141
142   GetDeflection (theShape  : Shape from TopoDS;
143                  theDrawer : Drawer from Prs3d)
144   returns Real from Standard;
145   ---Purpose: Computes the absolute deflection value depending on
146   -- the type of deflection in theDrawer:
147   -- <ul>
148   -- <li><b>Aspect_TOD_RELATIVE</b>: the absolute deflection is computed using the relative
149   --   deviation coefficient from theDrawer and the shape's bounding box;</li>
150   -- <li><b>Aspect_TOD_ABSOLUTE</b>: the maximal chordial deviation from theDrawer is returned.</li>
151   -- </ul>
152   -- This function should always be used to compute the deflection value for building
153   -- discrete representations of the shape (triangualtion, wireframe) to avoid incosistencies
154   -- between different representations of the shape and undesirable visual artifacts.
155 end Prs3d;