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