0024751: Performance improvements in the Edge/Edge intersection algorithm
[occt.git] / src / IntTools / IntTools_FaceFace.cdl
CommitLineData
b311480e 1-- Created on: 2000-11-23
2-- Created by: Michael KLOKOV
973c2be1 3-- Copyright (c) 2000-2014 OPEN CASCADE SAS
b311480e 4--
973c2be1 5-- This file is part of Open CASCADE Technology software library.
b311480e 6--
d5f74e42 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
973c2be1 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.
b311480e 12--
973c2be1 13-- Alternatively, this file may be used under the terms of Open CASCADE
14-- commercial license or contractual agreement.
7fd59977 15
16class FaceFace from IntTools
17
18 ---Purpose: This class provides the intersection of
19 --- face's underlying surfaces.
20
4f189102 21uses
7fd59977 22
788cbaf4 23 TopolTool from Adaptor3d,
24 HSurface from GeomAdaptor,
25 ListOfPntOn2S from IntSurf ,
26 Intersection from IntPatch,
27 Face from TopoDS,
28 SequenceOfCurves from IntTools,
29 LineConstructor from IntTools,
4f189102 30 SequenceOfPntOn2Faces from IntTools,
4e57c75e 31 Context from BOPInt
4f189102
P
32
33
7fd59977 34
35raises NotDone from StdFail
36is
37
38 Create
4f189102 39 returns FaceFace from IntTools;
7fd59977 40 ---Purpose:
41 --- Empty constructor.
42 ---
43
44
45 SetParameters(me: in out;
46 ApproxCurves : Boolean from Standard;
47 ComputeCurveOnS1: Boolean from Standard;
48 ComputeCurveOnS2: Boolean from Standard;
49 ApproximationTolerance: Real from Standard);
50 ---Purpose:
51 --- Modifier
52 ---
53
54 Perform(me: in out;
55 F1: Face from TopoDS;
56 F2: Face from TopoDS);
57 ---Purpose:
58 --- Intersects underliing surfaces of F1 and F2
59 --- Use sum of tolerance of F1 and F2 as intersection
60 --- criteria
61 ---
62
63 IsDone(me)
64 returns Boolean from Standard;
65 ---Purpose:
66 --- Returns True if the intersection was successful
67 ---
68
69 Lines(me)
70 returns SequenceOfCurves from IntTools;
71 ---C++: return const&
72 ---Purpose:
73 --- Returns sequence of 3d curves as result of intersection
74 ---
75
76 Points(me)
77 returns SequenceOfPntOn2Faces from IntTools;
78 ---C++: return const&
79 ---Purpose:
80 --- Returns sequence of 3d curves as result of intersection
81 ---
82
83 TolReached3d(me)
84 returns Real from Standard;
85 ---Purpose:
86 --- Returns tolerance reached during approximation.
87 --- If approximation was not done, returns zero.
88 ---
89
90 TolReached2d(me)
91 returns Real from Standard;
92 ---Purpose:
93 --- Returns tolerance reached during approximation.
94 --- If approximation was not done, returns zero.
95 ---
96
97 Face1 (me)
98 returns Face from TopoDS;
99 ---C++: return const&
100 ---Purpose:
101 --- Returns first of processed faces
102 ---
103
104 Face2 (me)
105 returns Face from TopoDS;
106 ---C++: return const&
107 ---Purpose:
108 --- Returns second of processed faces
109 ---
110
111 TangentFaces (me)
112 returns Boolean from Standard;
113 ---Purpose:
114 --- Returns True if faces are tangent
a9f7b6b5 115 ---
a9f7b6b5
P
116 PrepareLines3D (me:out;
117 bToSplit: Boolean from Standard=Standard_True);
7fd59977 118 ---Purpose:
a9f7b6b5
P
119 --- Provides post-processing the result lines.
120 --- <bToSplit> - the flag.
121 -- In case of <bToSplit> is true the closed 3D-curves will be splitted
122 -- on parts.
123 -- In case of <bToSplit> is false the closed 3D-curves remain untouched.
124
4f189102
P
125 SetList (me: in out;
126 ListOfPnts: in out ListOfPntOn2S from IntSurf);
7fd59977 127
128 ----------------------------------------------------------
129 -- private block
130 ----------------------------------------------------------
131 MakeCurve(me: in out; Index : Integer from Standard;
132 D1 : TopolTool from Adaptor3d;
133 D2 : TopolTool from Adaptor3d)
134 is protected;
135
7fd59977 136 ComputeTolReached3d(me:out)
137 is protected;
4f189102
P
138
139 SetContext(me:out;
4e57c75e 140 aContext : Context from BOPInt);
4f189102
P
141 ---Purpose:
142 --- Sets the intersecton context
143
144 Context(me)
4e57c75e 145 returns Context from BOPInt;
4f189102
P
146 ---C++: return const &
147 ---Purpose:
148 --- Gets the intersecton context
149 ---
7fd59977 150fields
151
152 myIsDone : Boolean from Standard;
153 myIntersector : Intersection from IntPatch;
154 myLConstruct : LineConstructor from IntTools;
155 myHS1 : HSurface from GeomAdaptor;
156 myHS2 : HSurface from GeomAdaptor;
157 myNbrestr : Integer from Standard;
158
159 myTolReached2d : Real from Standard;
160 myTolReached3d : Real from Standard;
161
162 myApprox : Boolean from Standard;
163 myApprox1 : Boolean from Standard;
164 myApprox2 : Boolean from Standard;
165 myTolApprox : Real from Standard;
166
167 mySeqOfCurve : SequenceOfCurves from IntTools;
168
169 myTangentFaces: Boolean from Standard;
170 myFace1 : Face from TopoDS;
171 myFace2 : Face from TopoDS;
172 myPnts : SequenceOfPntOn2Faces from IntTools;
173
4f189102
P
174 myListOfPnts : ListOfPntOn2S from IntSurf;
175
4e57c75e 176 myContext : Context from BOPInt;
7fd59977 177
178end FaceFace from IntTools;
179