1 -- File: IntPatch_PrmPrmIntersection.cdl
2 -- Created: Thu Jan 28 14:46:57 1993
3 -- Author: Laurent BUCHARD
4 ---Copyright: Matra Datavision 1993
6 class PrmPrmIntersection from IntPatch
8 ---Purpose: Implementation of the Intersection between two
9 -- bi-parametrised surfaces.
11 -- To avoid multiple constructions of the approximated
12 -- polyhedron of the surfaces, the algorithm can be
13 -- called whith the two surfaces and their associated
19 Polyhedron from IntPatch,
20 HSurface from Adaptor3d,
21 TopolTool from Adaptor3d,
23 SequenceOfLine from IntPatch,
24 PrmPrmIntersection_T3Bits from IntPatch,
25 LineOn2S from IntSurf,
27 ListOfPntOn2S from IntSurf
29 raises OutOfRange from Standard,
36 ---Purpose : Empty Constructor
38 returns PrmPrmIntersection from IntPatch;
41 Caro1 : HSurface from Adaptor3d;
42 Polyhedron1 : Polyhedron from IntPatch;
43 Domain1 : TopolTool from Adaptor3d;
44 Caro2 : HSurface from Adaptor3d;
45 Polyhedron2 : Polyhedron from IntPatch;
46 Domain2 : TopolTool from Adaptor3d;
50 Increment : Real from Standard)
52 ---Purpose: Performs the intersection between <Caro1> and
53 -- <Caro2>. Associated Polyhedrons <Polyhedron1>
54 -- and <Polyhedron2> are given.
58 Caro1 : HSurface from Adaptor3d;
59 Polyhedron1 : Polyhedron from IntPatch;
60 Domain1 : TopolTool from Adaptor3d;
64 Increment : Real from Standard)
71 Caro1 : HSurface from Adaptor3d;
72 Domain1 : TopolTool from Adaptor3d;
73 Caro2 : HSurface from Adaptor3d;
74 Domain2 : TopolTool from Adaptor3d;
78 Increment : Real from Standard;
80 ClearFlag : Boolean from Standard = Standard_True)
82 ---Purpose: Performs the intersection between <Caro1> and
83 -- <Caro2>. The method computes the polyhedron on
90 Caro1 : HSurface from Adaptor3d;
91 Domain1 : TopolTool from Adaptor3d;
92 Caro2 : HSurface from Adaptor3d;
93 Domain2 : TopolTool from Adaptor3d;
97 Increment : Real from Standard;
98 ListOfPnts: in out ListOfPntOn2S from IntSurf;
99 RestrictLine: Boolean from Standard)
101 ---Purpose: Performs the intersection between <Caro1> and
102 -- <Caro2>. The method computes the polyhedron on
108 Caro1 : HSurface from Adaptor3d;
109 Domain1 : TopolTool from Adaptor3d;
110 Caro2 : HSurface from Adaptor3d;
111 Domain2 : TopolTool from Adaptor3d;
112 U1,V1,U2,V2 : Real from Standard;
116 Increment : Real from Standard)
118 ---Purpose: Performs the intersection between <Caro1> and
119 -- <Caro2>. The method computes the polyhedron on
126 Caro1 : HSurface from Adaptor3d;
127 Domain1 : TopolTool from Adaptor3d;
131 Increment : Real from Standard)
133 ---Purpose: Performs the intersection between <Caro1> and
134 -- <Caro2>. The method computes the polyhedron on
143 Caro1 : HSurface from Adaptor3d;
144 Domain1 : TopolTool from Adaptor3d;
145 Caro2 : HSurface from Adaptor3d;
146 Polyhedron2 : Polyhedron from IntPatch;
147 Domain2 : TopolTool from Adaptor3d;
151 Increment : Real from Standard)
153 ---Purpose: Performs the intersection between <Caro1> and
156 -- The polyhedron which approximates <Caro2>,
157 -- <Polyhedron2> is given. The other one is
164 Caro1 : HSurface from Adaptor3d;
165 Polyhedron1 : Polyhedron from IntPatch;
166 Domain1 : TopolTool from Adaptor3d;
167 Caro2 : HSurface from Adaptor3d;
168 Domain2 : TopolTool from Adaptor3d;
172 Increment : Real from Standard)
174 ---Purpose: Performs the intersection between <Caro1> and
177 -- The polyhedron which approximates <Caro1>,
178 -- <Polyhedron1> is given. The other one is
186 ---Purpose: Returns true if the calculus was succesfull.
188 returns Boolean from Standard
196 ---Purpose: Returns true if the is no intersection.
198 returns Boolean from Standard
201 raises NotDone from StdFail
207 ---Purpose: Returns the number of intersection lines.
209 returns Integer from Standard
212 raises NotDone from StdFail
216 Line(me; Index: Integer from Standard)
218 ---Purpose: Returns the line of range Index.
219 -- An exception is raised if Index<=0 or Index>NbLine.
221 returns Line from IntPatch
222 ---C++: return const&
225 raises NotDone from StdFail,
226 OutOfRange from Standard
229 NewLine(me; Caro1 : HSurface from Adaptor3d;
230 Caro2 : HSurface from Adaptor3d;
234 NbPoints: Integer from Standard)
236 ---Purpose: Computes about <NbPoints> Intersection Points on
237 -- the Line <IndexLine> between the Points of Index
238 -- <LowPoint> and <HighPoint>.
240 -- All the points of the line of index <IndexLine>
241 -- with an index between <LowPoint> and <HighPoint>
242 -- are in the returned line. New Points are inserted
243 -- between existing points if those points are not
246 -- An exception is raised if Index<=0 or Index>NbLine.
247 -- or if IsDone returns False
249 returns Line from IntPatch
251 raises NotDone from StdFail,
252 OutOfRange from Standard
258 ix : Integer from Standard ;
259 iy : Integer from Standard ;
260 iz : Integer from Standard )
261 returns Integer from Standard
266 t : Integer from Standard ;
267 ix : in out Integer from Standard ;
268 iy : in out Integer from Standard ;
269 iz : in out Integer from Standard )
274 t : Integer from Standard )
275 returns Integer from Standard
281 NbPointsGrille ( me )
282 returns Integer from Standard
288 x1 : Integer from Standard ;
289 y1 : Integer from Standard ;
290 z1 : Integer from Standard ;
291 x2 : Integer from Standard ;
292 y2 : Integer from Standard ;
293 z2 : Integer from Standard ;
294 Map : in out PrmPrmIntersection_T3Bits from IntPatch )
298 x1 : Integer from Standard ;
299 y1 : Integer from Standard ;
300 z1 : Integer from Standard ;
301 x2 : Integer from Standard ;
302 y2 : Integer from Standard ;
303 z2 : Integer from Standard ;
304 x3 : Integer from Standard ;
305 y3 : Integer from Standard ;
306 z3 : Integer from Standard ;
307 Map : in out PrmPrmIntersection_T3Bits from IntPatch )
312 a : Integer from Standard ;
313 b : Integer from Standard ;
314 c : Integer from Standard ;
315 Map : in out PrmPrmIntersection_T3Bits from IntPatch )
319 x1 : Real from Standard ;
320 y1 : Real from Standard ;
321 z1 : Real from Standard ;
322 x2 : Real from Standard ;
323 y2 : Real from Standard ;
324 z2 : Real from Standard ;
325 x3 : Real from Standard ;
326 y3 : Real from Standard ;
327 z3 : Real from Standard )
328 returns Integer from Standard
332 LineOn2S : in out LineOn2S from IntSurf ;
333 S1 : HSurface from Adaptor3d ;
334 SU1 : Integer from Standard ;
335 SV1 : Integer from Standard ;
336 S2 : HSurface from Adaptor3d ;
337 SU2 : Integer from Standard ;
338 SV2 : Integer from Standard )
345 done : Boolean from Standard;
346 empt : Boolean from Standard;
347 Preci : Real from Standard;
348 Fleche : Real from Standard;
349 Pas : Real from Standard;
350 SLin : SequenceOfLine from IntPatch;
352 end PrmPrmIntersection;