0022623: Use of uninitialized variables in HLRBRep_Curve::UpdateMinMax in debug mode
[occt.git] / src / HLRAlgo / HLRAlgo.cdl
1 -- File:      HLRAlgo.cdl
2 -- Created:   Tue Feb 18 17:18:30 1992
3 -- Author:    Christophe MARION
4 ---Copyright: Matra Datavision 1992
5
6 package HLRAlgo 
7 --- Purpose:        In order to have the precision required in
8 -- industrial design, drawings need to offer the
9 -- possibility of removing lines, which are hidden
10 -- in a given projection. To do this, the Hidden
11 -- Line Removal component provides two
12  --   algorithms: HLRBRep_Algo and HLRBRep_PolyAlgo.
13 -- These algorithms remove or indicate lines
14 -- hidden by surfaces. For a given projection, they
15 -- calculate a set of lines characteristic of the
16 -- object being represented. They are also used
17 -- in conjunction with extraction utilities, which
18 -- reconstruct a new, simplified shape from a
19 -- selection of calculation results. This new shape
20 -- is made up of edges, which represent the lines
21 -- of the visualized shape in a plane. This plane is the projection plane.
22 -- HLRBRep_Algo takes into account the shape
23 -- itself. HLRBRep_PolyAlgo works with a
24 -- polyhedral simplification of the shape. When
25 -- you use HLRBRep_Algo, you obtain an exact
26 -- result, whereas, when you use
27 -- HLRBRep_PolyAlgo, you reduce computation
28 -- time but obtain polygonal segments.
29 uses
30     Standard,
31     StdFail,
32     MMgt,
33     TCollection,
34     TColStd,
35     TColgp,
36     Intrv,
37     gp,
38     GeomAbs,
39     TopAbs,
40     TopBas,
41     TopCnx,
42     TopLoc,
43     IntRes2d,
44     IntCurveSurface
45
46 is
47     class BiPoint;
48     
49     class ListOfBPoint             instantiates List         from TCollection
50         (BiPoint from HLRAlgo);
51
52     class PolyShellData;
53         ---Purpose: All the PolyData of a Shell
54     
55     class PolyInternalData;
56         ---Purpose: to Update OutLines.
57     
58     class PolyInternalSegment;
59         ---Purpose: to Update OutLines.
60     
61     class PolyInternalNode;
62         ---Purpose: to Update OutLines.
63     
64     class PolyData;
65         ---Purpose: Data structure of a set of Triangles.
66     
67     class PolyHidingData;
68         ---Purpose: Data structure of a set of Hiding Triangles.
69     
70     class TriangleData;
71         ---Purpose: Data structure of a triangle.
72     
73     class Array1OfPHDat            instantiates Array1       from TCollection
74         (PolyHidingData from HLRAlgo);
75         
76     class HArray1OfPHDat           instantiates HArray1      from TCollection
77         (PolyHidingData from HLRAlgo,
78          Array1OfPHDat  from HLRAlgo);
79         
80     class Array1OfPISeg            instantiates Array1       from TCollection
81         (PolyInternalSegment from HLRAlgo);
82         
83     class HArray1OfPISeg           instantiates HArray1      from TCollection
84         (PolyInternalSegment from HLRAlgo,
85          Array1OfPISeg       from HLRAlgo);
86         
87     class Array1OfPINod            instantiates Array1       from TCollection
88         (PolyInternalNode from HLRAlgo);
89         
90     class HArray1OfPINod           instantiates HArray1      from TCollection
91         (PolyInternalNode from HLRAlgo,
92          Array1OfPINod    from HLRAlgo);
93         
94     class Array1OfTData            instantiates Array1       from TCollection
95         (TriangleData from HLRAlgo);
96         
97     class HArray1OfTData           instantiates HArray1      from TCollection
98         (TriangleData  from HLRAlgo,
99          Array1OfTData from HLRAlgo);
100         
101     class PolyAlgo;
102         ---Purpose: to remove Hidden lines on Triangulations.
103     
104     class EdgeStatus;
105         ---Purpose: This class describes the  visible-hidden Status of
106         --          an Edge and its parametric bounds.
107         
108     class Projector;
109         ---Purpose: To transform and project Points and Planes.
110         
111     class Intersection;
112         ---Purpose: Parameter and State (above, on or under the face).
113
114     class Coincidence;
115         ---Purpose: A coincidence  describes the geometry  of the edge
116         --          of the hiding face around the intersection.
117         
118     class Interference             instantiates Interference from TopBas
119         (Intersection from HLRAlgo, 
120          Coincidence  from HLRAlgo);
121
122     class InterferenceList         instantiates List         from TCollection
123         (Interference from HLRAlgo);
124         
125     class EdgesBlock;
126         ---Purpose: A set of oriented Edges. (A wire).
127     
128     class WiresBlock;
129         ---Purpose: A set of Wires. (A face).
130     
131     class EdgeIterator;
132         ---Purpose: Iterator  on the  visible or  hidden  parts of  an
133         --          EdgeStatus.
134     
135     UpdateMinMax (x,y,z : Real    from Standard;
136                   Min   : Address from Standard;
137                   Max   : Address from Standard);
138
139     EnlargeMinMax (tol : Real    from Standard;
140                    Min : Address from Standard;
141                    Max : Address from Standard);
142
143     InitMinMax (Big : Real    from Standard;
144                 Min : Address from Standard;
145                 Max : Address from Standard);
146
147     EncodeMinMax (Min    : Address from Standard;
148                   Max    : Address from Standard;
149                   MinMax : Address from Standard);
150
151     SizeBox (Min    : Address from Standard;
152              Max    : Address from Standard)
153     returns Real from Standard;
154
155     DecodeMinMax (MinMax : Address from Standard;
156                   Min    : Address from Standard;
157                   Max    : Address from Standard);
158
159     CopyMinMax (IMin : Address from Standard;
160                 IMax : Address from Standard;
161                 OMin : Address from Standard;
162                 OMax : Address from Standard);
163
164     AddMinMax (IMin : Address from Standard;
165                IMax : Address from Standard;
166                OMin : Address from Standard;
167                OMax : Address from Standard);
168
169 end HLRAlgo;