1 -- Created by: Eugeny MALTCHIKOV
2 -- Copyright (c) 2013-2014 OPEN CASCADE SAS
4 -- This file is part of Open CASCADE Technology software library.
6 -- This library is free software; you can redistribute it and/or modify it under
7 -- the terms of the GNU Lesser General Public License version 2.1 as published
8 -- by the Free Software Foundation, with special exception defined in the file
9 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
10 -- distribution for complete text of the license and disclaimer of any warranty.
12 -- Alternatively, this file may be used under the terms of Open CASCADE
13 -- commercial license or contractual agreement.
15 class EdgeEdge from IntTools
17 -- The class provides Edge/Edge intersection algorithm
18 -- based on the intersection between edges bounding boxes.
26 Curve from BRepAdaptor,
27 ShapeEnum from TopAbs,
28 SequenceOfRanges from IntTools,
29 SequenceOfCommonPrts from IntTools
34 returns EdgeEdge from IntTools;
35 ---C++: alias "~IntTools_EdgeEdge();"
41 theEdge1 : Edge from TopoDS;
42 theEdge2 : Edge from TopoDS)
43 returns EdgeEdge from IntTools;
49 theEdge1 : Edge from TopoDS;
50 aT11, aT12 : Real from Standard;
51 theEdge2 : Edge from TopoDS;
52 aT21, aT22 : Real from Standard)
53 returns EdgeEdge from IntTools;
59 theEdge : Edge from TopoDS);
62 -- Sets the first edge
65 theEdge : Edge from TopoDS;
66 aT1, aT2 : Real from Standard);
69 -- Sets the first edge and its range
72 theRange1 : Range from IntTools);
75 -- Sets the range for the first edge
78 aT1, aT2 : Real from Standard);
81 -- Sets the range for the first edge
84 theEdge : Edge from TopoDS);
87 -- Sets the second edge
90 theEdge : Edge from TopoDS;
91 aT1, aT2 : Real from Standard);
94 -- Sets the first edge and its range
97 theRange : Range from IntTools);
100 -- Sets the range for the second edge
103 aT1, aT2 : Real from Standard);
106 -- Sets the range for the second edge
121 -- Performs the intersection between edges
123 ComputeLineLine(me:out)
126 -- Computes Line/Line intersection.
128 FindSolutions(me:out)
131 -- Looking for solutions
133 FindSolutions(me:out;
134 theR1, theR2 : Range from IntTools;
135 theBC : Box from Bnd;
136 theRanges1 : out SequenceOfRanges from IntTools;
137 theRanges2 : out SequenceOfRanges from IntTools)
140 -- Looking for the exact intersection ranges
142 MergeSolutions(me:out;
143 theRanges1, theRanges2 : SequenceOfRanges from IntTools)
146 -- Merges found solutions
148 FindParameters(myclass;
149 theBAC : Curve from BRepAdaptor;
150 aT1,aT2 : Real from Standard;
151 theRes : Real from Standard;
152 theCBox : Box from Bnd;
153 aTB1,aTB2 : out Real from Standard)
154 returns Boolean from Standard
157 -- Looking for the range of the edge whick is in the box
159 CheckCoincidence(me:out;
160 aT11, aT12 : Real from Standard;
161 aT21, aT22 : Real from Standard;
162 theCriteria : Real from Standard;
163 theCurveRes1: Real from Standard)
164 returns Integer from Standard
167 -- Checks if edges coincide on the ranges
170 aT11, aT12, aT21, aT22 : Real from Standard;
171 theType : ShapeEnum from TopAbs)
174 -- Adds common part of the given type to myCommonParts
176 FindBestSolution(me:out;
177 aT11, aT12, aT21, aT22 : Real from Standard;
178 aT1, aT2 : out Real from Standard)
181 -- Looking for the minimal distance between edges on the ranges
183 IsIntersection(me:out;
184 aT11, aT12 : Real from Standard;
185 aT21, aT22 : Real from Standard)
186 returns Boolean from Standard
189 -- Checks is there an intersection between edges on the given ranges
190 -- (for nearly conicident edges)
193 returns Boolean from Standard;
196 -- Returns TRUE if common part(s) is(are) found
199 returns SequenceOfCommonPrts from IntTools;
201 ---C++: return const&
203 -- Returns common parts
207 myEdge1 : Edge from TopoDS is protected;
208 myEdge2 : Edge from TopoDS is protected;
210 myGeom1 : Curve from Geom is protected;
211 myGeom2 : Curve from Geom is protected;
213 myCurve1 : Curve from BRepAdaptor is protected;
214 myCurve2 : Curve from BRepAdaptor is protected;
216 myTol1 : Real from Standard is protected;
217 myTol2 : Real from Standard is protected;
218 myTol : Real from Standard is protected;
220 myRes1 : Real from Standard is protected;
221 myRes2 : Real from Standard is protected;
223 myRange1 : Range from IntTools is protected;
224 myRange2 : Range from IntTools is protected;
227 mySwap : Boolean from Standard is protected;
228 myErrorStatus : Integer from Standard is protected;
229 myCommonParts : SequenceOfCommonPrts from IntTools is protected;