1 -- File: IntPatch_Intersection.cdl
2 -- Created: Thu Jan 21 16:40:38 1993
3 -- Author: Jacques GOUSSARD
4 ---Copyright: OPEN CASCADE 1993
7 class Intersection from IntPatch
9 ---Purpose: This class provides a generic algorithm to intersect
13 HVertex from Adaptor3d,
14 HCurve2d from Adaptor2d,
15 HSurface from Adaptor3d,
17 SequenceOfPoint from IntPatch,
18 TopolTool from Adaptor3d,
19 SequenceOfLine from IntPatch,
22 ListOfPntOn2S from IntSurf
24 raises NotDone from StdFail,
25 OutOfRange from Standard,
26 DomainError from Standard,
27 ConstructionError from Standard
32 returns Intersection from IntPatch;
35 Create (S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
36 S2: HSurface from Adaptor3d; D2: TopolTool from Adaptor3d;
37 TolArc,TolTang: Real from Standard)
39 returns Intersection from IntPatch
41 raises ConstructionError from Standard;
43 Create (S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
44 TolArc,TolTang: Real from Standard)
46 returns Intersection from IntPatch
48 raises ConstructionError from Standard;
51 SetTolerances(me : in out;
52 TolArc : Real from Standard;
53 TolTang : Real from Standard;
54 UVMaxStep: Real from Standard;
55 Fleche : Real from Standard)
57 ---Purpose: Set the tolerances used by the algorithms:
58 -- --- Implicit - Parametric
59 -- --- Parametric - Parametric
60 -- --- Implicit - Implicit
62 -- TolArc is used to compute the intersections
63 -- between the restrictions of a surface and a
66 -- TolTang is used to compute the points on a walking
67 -- line, and in geometric algorithms.
69 -- Fleche is a parameter used in the walking
70 -- algorithms to provide small curvatures on a line.
72 -- UVMaxStep is a parameter used in the walking
73 -- algorithms to compute the distance between to
74 -- points in their respective parametrtic spaces.
79 S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
80 S2: HSurface from Adaptor3d; D2: TopolTool from Adaptor3d;
81 TolArc,TolTang: Real from Standard)
83 raises ConstructionError from Standard
89 S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
90 S2: HSurface from Adaptor3d; D2: TopolTool from Adaptor3d;
91 TolArc,TolTang: Real from Standard;
92 LOfPnts: in out ListOfPntOn2S from IntSurf;
93 RestrictLine: Boolean from Standard = Standard_True)
95 raises ConstructionError from Standard
100 S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
101 S2: HSurface from Adaptor3d; D2: TopolTool from Adaptor3d;
102 U1,V1,U2,V2 : Real from Standard;
103 TolArc,TolTang: Real from Standard)
105 raises ConstructionError from Standard
110 S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
111 TolArc,TolTang: Real from Standard)
113 raises ConstructionError from Standard
120 ---Purpose: Returns True if the calculus was succesfull.
122 returns Boolean from Standard
130 ---Purpose: Returns true if the is no intersection.
132 returns Boolean from Standard
135 raises NotDone from StdFail
142 ---Purpose: Returns True if the two patches are considered as
143 -- entierly tangent, i-e every restriction arc of one
144 -- patch is inside the geometric base of the other patch.
146 returns Boolean from Standard
149 raises NotDone from StdFail
156 ---Purpose: Returns True when the TangentFaces returns True and the
157 -- normal vectors evaluated at a point on the first and the
158 -- second surface are opposite.
159 -- The exception DomainError is raised if TangentFaces
162 returns Boolean from Standard
165 raises NotDone from StdFail,
166 DomainError from Standard
173 ---Purpose: Returns the number of "single" points.
175 returns Integer from Standard
178 raises NotDone from StdFail
183 Point(me; Index: Integer from Standard)
185 ---Purpose: Returns the point of range Index.
186 -- An exception is raised if Index<=0 or Index>NbPnt.
188 returns Point from IntPatch
189 ---C++: return const&
192 raises NotDone from StdFail,
193 OutOfRange from Standard
200 ---Purpose: Returns the number of intersection lines.
202 returns Integer from Standard
205 raises NotDone from StdFail
210 Line(me; Index: Integer from Standard)
212 ---Purpose: Returns the line of range Index.
213 -- An exception is raised if Index<=0 or Index>NbLine.
215 returns Line from IntPatch
216 ---C++: return const&
219 raises NotDone from StdFail,
220 OutOfRange from Standard
225 returns SequenceOfLine from IntPatch
226 ---C++: return const&
227 raises NotDone from StdFail
230 Dump(me; Mode: Integer from Standard;
231 S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
232 S2: HSurface from Adaptor3d; D2: TopolTool from Adaptor3d)
233 ---Purpose: Dump of each result line.
234 --- Mode for more accurate dumps.
240 done : Boolean from Standard;
241 empt : Boolean from Standard;
242 tgte : Boolean from Standard;
243 oppo : Boolean from Standard;
244 spnt : SequenceOfPoint from IntPatch;
245 slin : SequenceOfLine from IntPatch;
246 myTolArc : Real from Standard;
247 myTolTang : Real from Standard;
248 myUVMaxStep: Real from Standard;
249 myFleche : Real from Standard;
250 myIsStartPnt: Boolean from Standard;
251 myU1Start : Real from Standard;
252 myV1Start : Real from Standard;
253 myU2Start : Real from Standard;
254 myV2Start : Real from Standard;