0025099: Visualization - Option to show vertices of a shape
[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   enumeration VertexDrawMode is VDM_Isolated, VDM_All, VDM_Inherited;
96   ---Purpose: Describes supported modes of visualization of the shape's vertices:
97   -- VDM_Isolated  - only isolated vertices (not belonging to a face) are displayed.
98   -- VDM_All       - all vertices of the shape are displayed.
99   -- VDM_Inherited - the global settings are inherited and applied to the shape's presentation.
100
101   class Presentation;
102
103   ---Category: Aspect classes.
104
105   deferred class BasicAspect;   
106   class PointAspect;
107   class LineAspect;
108   class ShadingAspect;
109   class TextAspect;
110   class IsoAspect;
111   class ArrowAspect;
112   class PlaneAspect;
113   class DimensionAspect;
114   class DatumAspect;
115   imported DimensionUnits;
116
117   class Drawer;
118
119   class Projector;
120
121   class PlaneSet;
122
123   deferred class Root;
124
125   ---Category: Basis construction elements.
126
127   class Text;
128
129         ---Category: Class signatures.
130
131   class ShapeTool;
132
133   class Arrow;
134   ---Purpose: draws an arrow at a given location, with respect
135   --          to a given direction.
136
137   imported NListOfSequenceOfPnt; 
138   imported NListIteratorListOfSequenceOfPnt;
139   imported Point;
140   imported WFShape;
141   
142   MatchSegment(X,Y,Z: Length from Quantity;
143               aDistance: Length from Quantity;
144               p1,p2: Pnt from gp;
145               dist: out Length from Quantity)
146   returns Boolean from Standard;
147
148   GetDeflection (theShape  : Shape from TopoDS;
149                  theDrawer : Drawer from Prs3d)
150   returns Real from Standard;
151   ---Purpose: Computes the absolute deflection value depending on
152   -- the type of deflection in theDrawer:
153   -- <ul>
154   -- <li><b>Aspect_TOD_RELATIVE</b>: the absolute deflection is computed using the relative
155   --   deviation coefficient from theDrawer and the shape's bounding box;</li>
156   -- <li><b>Aspect_TOD_ABSOLUTE</b>: the maximal chordial deviation from theDrawer is returned.</li>
157   -- </ul>
158   -- This function should always be used to compute the deflection value for building
159   -- discrete representations of the shape (triangualtion, wireframe) to avoid incosistencies
160   -- between different representations of the shape and undesirable visual artifacts.
161 end Prs3d;