1 -- Created on: 2000-11-23
2 -- Created by: Michael KLOKOV
3 -- Copyright (c) 2000-2014 OPEN CASCADE SAS
5 -- This file is part of Open CASCADE Technology software library.
7 -- This library is free software; you can redistribute it and/or modify it under
8 -- the terms of the GNU Lesser General Public License version 2.1 as published
9 -- by the Free Software Foundation, with special exception defined in the file
10 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 -- distribution for complete text of the license and disclaimer of any warranty.
13 -- Alternatively, this file may be used under the terms of Open CASCADE
14 -- commercial license or contractual agreement.
16 class FaceFace from IntTools
18 ---Purpose: This class provides the intersection of
19 --- face's underlying surfaces.
23 TopolTool from Adaptor3d,
24 HSurface from GeomAdaptor,
25 ListOfPntOn2S from IntSurf ,
26 Intersection from IntPatch,
28 SequenceOfCurves from IntTools,
29 LineConstructor from IntTools,
30 SequenceOfPntOn2Faces from IntTools,
35 raises NotDone from StdFail
39 returns FaceFace from IntTools;
41 --- Empty constructor.
44 SetParameters(me: in out;
45 ApproxCurves : Boolean from Standard;
46 ComputeCurveOnS1: Boolean from Standard;
47 ComputeCurveOnS2: Boolean from Standard;
48 ApproximationTolerance: Real from Standard);
55 F2: Face from TopoDS);
57 --- Intersects underliing surfaces of F1 and F2
58 --- Use sum of tolerance of F1 and F2 as intersection
62 returns Boolean from Standard;
64 --- Returns True if the intersection was successful
68 returns SequenceOfCurves from IntTools;
71 --- Returns sequence of 3d curves as result of intersection
75 returns SequenceOfPntOn2Faces from IntTools;
78 --- Returns sequence of 3d curves as result of intersection
82 returns Real from Standard;
84 --- Returns tolerance reached during approximation.
85 --- If approximation was not done, returns zero.
88 returns Real from Standard;
90 --- Returns tolerance reached during approximation.
91 --- If approximation was not done, returns zero.
95 returns Face from TopoDS;
98 --- Returns first of processed faces
102 returns Face from TopoDS;
103 ---C++: return const&
105 --- Returns second of processed faces
109 returns Boolean from Standard;
111 --- Returns True if faces are tangent
113 PrepareLines3D (me:out;
114 bToSplit: Boolean from Standard=Standard_True);
116 --- Provides post-processing the result lines.
117 --- <bToSplit> - the flag.
118 -- In case of <bToSplit> is true the closed 3D-curves will be splitted
120 -- In case of <bToSplit> is false the closed 3D-curves remain untouched.
123 ListOfPnts: in out ListOfPntOn2S from IntSurf);
125 ----------------------------------------------------------
127 ----------------------------------------------------------
128 MakeCurve(me: in out; Index : Integer from Standard;
129 D1 : TopolTool from Adaptor3d;
130 D2 : TopolTool from Adaptor3d)
133 ComputeTolReached3d(me:out)
137 aContext : Context from IntTools);
139 --- Sets the intersecton context
142 returns Context from IntTools;
143 ---C++: return const &
145 --- Gets the intersecton context
149 myIsDone : Boolean from Standard;
150 myIntersector : Intersection from IntPatch;
151 myLConstruct : LineConstructor from IntTools;
152 myHS1 : HSurface from GeomAdaptor;
153 myHS2 : HSurface from GeomAdaptor;
154 myNbrestr : Integer from Standard;
156 myTolReached2d : Real from Standard;
157 myTolReached3d : Real from Standard;
159 myApprox : Boolean from Standard;
160 myApprox1 : Boolean from Standard;
161 myApprox2 : Boolean from Standard;
162 myTolApprox : Real from Standard;
164 mySeqOfCurve : SequenceOfCurves from IntTools;
166 myTangentFaces: Boolean from Standard;
167 myFace1 : Face from TopoDS;
168 myFace2 : Face from TopoDS;
169 myPnts : SequenceOfPntOn2Faces from IntTools;
171 myListOfPnts : ListOfPntOn2S from IntSurf;
173 myContext : Context from IntTools;
175 end FaceFace from IntTools;