0024157: Parallelization of assembly part of BO
[occt.git] / src / HLRAlgo / HLRAlgo.cdl
CommitLineData
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
22package 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.
45uses
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
62is
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
185end HLRAlgo;