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;
129 theR1, theR2 : Range from IntTools;
130 theRanges1 : out SequenceOfRanges from IntTools;
131 theRanges2 : out SequenceOfRanges from IntTools)
134 -- Looking for the exact intersection ranges
136 MergeSolutions(me:out;
137 theRanges1, theRanges2 : SequenceOfRanges from IntTools)
140 -- Merges found solutions
142 FindParameters(myclass;
143 theBAC : Curve from BRepAdaptor;
144 aT1,aT2 : Real from Standard;
145 theRes : Real from Standard;
146 thePTol : Real from Standard;
147 theCBox : Box from Bnd;
148 aTB1,aTB2 : out Real from Standard)
149 returns Boolean from Standard
152 -- Looking for the range of the edge whick is in the box
154 CheckCoincidence(me:out;
155 aT11, aT12 : Real from Standard;
156 aT21, aT22 : Real from Standard;
157 theCriteria : Real from Standard;
158 theCurveRes1: Real from Standard)
159 returns Integer from Standard
162 -- Checks if edges coincide on the ranges
165 aT11, aT12, aT21, aT22 : Real from Standard;
166 theType : ShapeEnum from TopAbs)
169 -- Adds common part of the given type to myCommonParts
171 FindBestSolution(me:out;
172 aT11, aT12, aT21, aT22 : Real from Standard;
173 aT1, aT2 : out Real from Standard)
176 -- Looking for the minimal distance between edges on the ranges
178 IsIntersection(me:out;
179 aT11, aT12 : Real from Standard;
180 aT21, aT22 : Real from Standard)
181 returns Boolean from Standard
184 -- Checks is there an intersection between edges on the given ranges
185 -- (for nearly conicident edges)
188 returns Boolean from Standard;
191 -- Returns TRUE if common part(s) is(are) found
194 returns SequenceOfCommonPrts from IntTools;
196 ---C++: return const&
198 -- Returns common parts
202 myEdge1 : Edge from TopoDS is protected;
203 myEdge2 : Edge from TopoDS is protected;
205 myGeom1 : Curve from Geom is protected;
206 myGeom2 : Curve from Geom is protected;
208 myCurve1 : Curve from BRepAdaptor is protected;
209 myCurve2 : Curve from BRepAdaptor is protected;
211 myTol1 : Real from Standard is protected;
212 myTol2 : Real from Standard is protected;
213 myTol : Real from Standard is protected;
215 myRes1 : Real from Standard is protected;
216 myRes2 : Real from Standard is protected;
218 myPTol1 : Real from Standard is protected;
219 myPTol2 : Real from Standard is protected;
221 myRange1 : Range from IntTools is protected;
222 myRange2 : Range from IntTools is protected;
225 mySwap : Boolean from Standard is protected;
226 myErrorStatus : Integer from Standard is protected;
227 myCommonParts : SequenceOfCommonPrts from IntTools is protected;