b311480e |
1 | -- Created on: 1992-02-18 |
2 | -- Created by: Christophe MARION |
3 | -- Copyright (c) 1992-1999 Matra Datavision |
4 | -- Copyright (c) 1999-2012 OPEN CASCADE SAS |
5 | -- |
6 | -- The content of this file is subject to the Open CASCADE Technology Public |
7 | -- License Version 6.5 (the "License"). You may not use the content of this file |
8 | -- except in compliance with the License. Please obtain a copy of the License |
9 | -- at http://www.opencascade.org and read it completely before using this file. |
10 | -- |
11 | -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its |
12 | -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. |
13 | -- |
14 | -- The Original Code and all software distributed under the License is |
15 | -- distributed on an "AS IS" basis, without warranty of any kind, and the |
16 | -- Initial Developer hereby disclaims all such warranties, including without |
17 | -- limitation, any warranties of merchantability, fitness for a particular |
18 | -- purpose or non-infringement. Please see the License for the specific terms |
19 | -- and conditions governing the rights and limitations under the License. |
20 | |
7fd59977 |
21 | |
22 | package HLRAlgo |
23 | --- Purpose: In order to have the precision required in |
24 | -- industrial design, drawings need to offer the |
25 | -- possibility of removing lines, which are hidden |
26 | -- in a given projection. To do this, the Hidden |
27 | -- Line Removal component provides two |
28 | -- algorithms: HLRBRep_Algo and HLRBRep_PolyAlgo. |
29 | -- These algorithms remove or indicate lines |
30 | -- hidden by surfaces. For a given projection, they |
31 | -- calculate a set of lines characteristic of the |
32 | -- object being represented. They are also used |
33 | -- in conjunction with extraction utilities, which |
34 | -- reconstruct a new, simplified shape from a |
35 | -- selection of calculation results. This new shape |
36 | -- is made up of edges, which represent the lines |
37 | -- of the visualized shape in a plane. This plane is the projection plane. |
38 | -- HLRBRep_Algo takes into account the shape |
39 | -- itself. HLRBRep_PolyAlgo works with a |
40 | -- polyhedral simplification of the shape. When |
41 | -- you use HLRBRep_Algo, you obtain an exact |
42 | -- result, whereas, when you use |
43 | -- HLRBRep_PolyAlgo, you reduce computation |
44 | -- time but obtain polygonal segments. |
45 | uses |
46 | Standard, |
47 | StdFail, |
48 | MMgt, |
49 | TCollection, |
50 | TColStd, |
51 | TColgp, |
52 | Intrv, |
53 | gp, |
54 | GeomAbs, |
55 | TopAbs, |
56 | TopBas, |
57 | TopCnx, |
58 | TopLoc, |
59 | IntRes2d, |
60 | IntCurveSurface |
61 | |
62 | is |
63 | class BiPoint; |
64 | |
65 | class ListOfBPoint instantiates List from TCollection |
66 | (BiPoint from HLRAlgo); |
67 | |
68 | class PolyShellData; |
69 | ---Purpose: All the PolyData of a Shell |
70 | |
71 | class PolyInternalData; |
72 | ---Purpose: to Update OutLines. |
73 | |
74 | class PolyInternalSegment; |
75 | ---Purpose: to Update OutLines. |
76 | |
77 | class PolyInternalNode; |
78 | ---Purpose: to Update OutLines. |
79 | |
80 | class PolyData; |
81 | ---Purpose: Data structure of a set of Triangles. |
82 | |
83 | class PolyHidingData; |
84 | ---Purpose: Data structure of a set of Hiding Triangles. |
85 | |
86 | class TriangleData; |
87 | ---Purpose: Data structure of a triangle. |
88 | |
89 | class Array1OfPHDat instantiates Array1 from TCollection |
90 | (PolyHidingData from HLRAlgo); |
91 | |
92 | class HArray1OfPHDat instantiates HArray1 from TCollection |
93 | (PolyHidingData from HLRAlgo, |
94 | Array1OfPHDat from HLRAlgo); |
95 | |
96 | class Array1OfPISeg instantiates Array1 from TCollection |
97 | (PolyInternalSegment from HLRAlgo); |
98 | |
99 | class HArray1OfPISeg instantiates HArray1 from TCollection |
100 | (PolyInternalSegment from HLRAlgo, |
101 | Array1OfPISeg from HLRAlgo); |
102 | |
103 | class Array1OfPINod instantiates Array1 from TCollection |
104 | (PolyInternalNode from HLRAlgo); |
105 | |
106 | class HArray1OfPINod instantiates HArray1 from TCollection |
107 | (PolyInternalNode from HLRAlgo, |
108 | Array1OfPINod from HLRAlgo); |
109 | |
110 | class Array1OfTData instantiates Array1 from TCollection |
111 | (TriangleData from HLRAlgo); |
112 | |
113 | class HArray1OfTData instantiates HArray1 from TCollection |
114 | (TriangleData from HLRAlgo, |
115 | Array1OfTData from HLRAlgo); |
116 | |
117 | class PolyAlgo; |
118 | ---Purpose: to remove Hidden lines on Triangulations. |
119 | |
120 | class EdgeStatus; |
121 | ---Purpose: This class describes the visible-hidden Status of |
122 | -- an Edge and its parametric bounds. |
123 | |
124 | class Projector; |
125 | ---Purpose: To transform and project Points and Planes. |
126 | |
127 | class Intersection; |
128 | ---Purpose: Parameter and State (above, on or under the face). |
129 | |
130 | class Coincidence; |
131 | ---Purpose: A coincidence describes the geometry of the edge |
132 | -- of the hiding face around the intersection. |
133 | |
134 | class Interference instantiates Interference from TopBas |
135 | (Intersection from HLRAlgo, |
136 | Coincidence from HLRAlgo); |
137 | |
138 | class InterferenceList instantiates List from TCollection |
139 | (Interference from HLRAlgo); |
140 | |
141 | class EdgesBlock; |
142 | ---Purpose: A set of oriented Edges. (A wire). |
143 | |
144 | class WiresBlock; |
145 | ---Purpose: A set of Wires. (A face). |
146 | |
147 | class EdgeIterator; |
148 | ---Purpose: Iterator on the visible or hidden parts of an |
149 | -- EdgeStatus. |
150 | |
151 | UpdateMinMax (x,y,z : Real from Standard; |
152 | Min : Address from Standard; |
153 | Max : Address from Standard); |
154 | |
155 | EnlargeMinMax (tol : Real from Standard; |
156 | Min : Address from Standard; |
157 | Max : Address from Standard); |
158 | |
159 | InitMinMax (Big : Real from Standard; |
160 | Min : Address from Standard; |
161 | Max : Address from Standard); |
162 | |
163 | EncodeMinMax (Min : Address from Standard; |
164 | Max : Address from Standard; |
165 | MinMax : Address from Standard); |
166 | |
167 | SizeBox (Min : Address from Standard; |
168 | Max : Address from Standard) |
169 | returns Real from Standard; |
170 | |
171 | DecodeMinMax (MinMax : Address from Standard; |
172 | Min : Address from Standard; |
173 | Max : Address from Standard); |
174 | |
175 | CopyMinMax (IMin : Address from Standard; |
176 | IMax : Address from Standard; |
177 | OMin : Address from Standard; |
178 | OMax : Address from Standard); |
179 | |
180 | AddMinMax (IMin : Address from Standard; |
181 | IMax : Address from Standard; |
182 | OMin : Address from Standard; |
183 | OMax : Address from Standard); |
184 | |
185 | end HLRAlgo; |