1 -- Created on: 2001-06-29
2 -- Created by: Michael KLOKOV
3 -- Copyright (c) 2001-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 BeanFaceIntersector from IntTools
18 ---Purpose: The class BeanFaceIntersector computes ranges of parameters on
19 -- the curve of a bean(part of edge) that bound the parts of bean which
20 -- are on the surface of a face according to edge and face tolerances.
21 -- Warning: The real boundaries of the face are not taken into account,
22 -- Most of the result parts of the bean lays only inside the region of the surface,
23 -- which includes the inside of the face. And the parts which are out of this region can be
24 -- excluded from the result.
28 SequenceOfRoots from IntTools,
29 MarkedRangeSet from IntTools,
30 SequenceOfRanges from IntTools,
31 Context from IntTools,
33 ProjectPointOnSurf from GeomAPI,
36 Curve from BRepAdaptor,
37 Surface from BRepAdaptor,
39 CurveRangeSample from IntTools,
40 SurfaceRangeSample from IntTools,
41 ListOfCurveRangeSample from IntTools,
42 ListOfSurfaceRangeSample from IntTools,
43 CurveRangeLocalizeData from IntTools,
44 SurfaceRangeLocalizeData from IntTools,
48 Create returns BeanFaceIntersector from IntTools;
50 Create(theEdge: Edge from TopoDS;
51 theFace: Face from TopoDS)
52 returns BeanFaceIntersector from IntTools;
54 --- Initializes the algorithm
57 --- The parts of the edge which are on
58 --- the surface of the face and belong to
59 --- the whole in the face (if there is)
60 --- is considered as result
63 Create(theCurve : Curve from BRepAdaptor;
64 theSurface : Surface from BRepAdaptor;
65 theBeanTolerance: Real from Standard;
66 theFaceTolerance: Real from Standard)
67 returns BeanFaceIntersector from IntTools;
69 --- Initializes the algorithm
72 Create(theCurve : Curve from BRepAdaptor;
73 theSurface : Surface from BRepAdaptor;
74 theFirstParOnCurve: Real from Standard;
75 theLastParOnCurve : Real from Standard;
76 theUMinParameter : Real from Standard;
77 theUMaxParameter : Real from Standard;
78 theVMinParameter : Real from Standard;
79 theVMaxParameter : Real from Standard;
80 theBeanTolerance : Real from Standard;
81 theFaceTolerance : Real from Standard)
82 returns BeanFaceIntersector from IntTools;
84 --- Initializes the algorithm
85 --- theUMinParameter, ... are used for
86 --- optimization purposes
89 Init(me: in out;theEdge: Edge from TopoDS;
90 theFace: Face from TopoDS);
92 --- Initializes the algorithm
95 --- The parts of the edge which are on
96 --- the surface of the face and belong to
97 --- the whole in the face (if there is)
98 --- is considered as result
101 Init(me: in out;theCurve : Curve from BRepAdaptor;
102 theSurface : Surface from BRepAdaptor;
103 theBeanTolerance: Real from Standard;
104 theFaceTolerance: Real from Standard);
106 --- Initializes the algorithm
109 Init(me: in out;theCurve : Curve from BRepAdaptor;
110 theSurface : Surface from BRepAdaptor;
111 theFirstParOnCurve: Real from Standard;
112 theLastParOnCurve : Real from Standard;
113 theUMinParameter : Real from Standard;
114 theUMaxParameter : Real from Standard;
115 theVMinParameter : Real from Standard;
116 theVMaxParameter : Real from Standard;
117 theBeanTolerance : Real from Standard;
118 theFaceTolerance : Real from Standard);
120 --- Initializes the algorithm
121 --- theUMinParameter, ... are used for
122 --- optimization purposes
125 SetContext(me: in out;
126 theContext: Context from IntTools);
128 --- Sets the intersecton context
131 returns Context from IntTools;
132 ---C++: return const &
134 --- Gets the intersecton context
136 SetBeanParameters(me: in out;theFirstParOnCurve : Real from Standard;
137 theLastParOnCurve : Real from Standard);
139 --- Set restrictions for curve
142 SetSurfaceParameters(me: in out;theUMinParameter : Real from Standard;
143 theUMaxParameter : Real from Standard;
144 theVMinParameter : Real from Standard;
145 theVMaxParameter : Real from Standard);
147 --- Set restrictions for surface
152 --- Launches the algorithm
155 IsDone(me) returns Boolean from Standard;
159 returns SequenceOfRanges from IntTools;
160 ---C++: return const &
162 Result(me; theResults: out SequenceOfRanges from IntTools);
166 ComputeAroundExactIntersection(me: in out)
169 ComputeLinePlane(me: in out)
172 FastComputeExactIntersection(me: in out)
173 returns Integer from Standard is private;
175 ComputeUsingExtremum(me: in out)
178 ComputeNearRangeBoundaries(me: in out)
181 ComputeLocalized(me: in out)
182 returns Boolean from Standard is private;
184 ComputeRangeFromStartPoint(me: in out; ToIncreaseParameter : Boolean from Standard;
185 theParameter : Real from Standard;
186 theUParameter : Real from Standard;
187 theVParameter : Real from Standard)
190 ComputeRangeFromStartPoint(me: in out; ToIncreaseParameter : Boolean from Standard;
191 theParameter : Real from Standard;
192 theUParameter : Real from Standard;
193 theVParameter : Real from Standard;
194 theIndex : Integer from Standard)
197 Distance(me: in out; theArg : Real from Standard;
198 theUParameter: out Real from Standard;
199 theVParameter: out Real from Standard)
200 returns Real from Standard
203 Distance(me: in out; theArg: Real from Standard)
204 returns Real from Standard
207 LocalizeSolutions(me: in out; theCurveRange : CurveRangeSample from IntTools;
208 theBoxCurve : Box from Bnd;
209 theSurfaceRange: SurfaceRangeSample from IntTools;
210 theBoxSurface : Box from Bnd;
211 theCurveData : in out CurveRangeLocalizeData from IntTools;
212 theSurfaceData : in out SurfaceRangeLocalizeData from IntTools;
213 theListCurveRange: in out ListOfCurveRangeSample from IntTools;
214 theListSurfaceRange: in out ListOfSurfaceRangeSample from IntTools)
215 returns Boolean from Standard
218 TestComputeCoinside(me: in out)
219 returns Boolean from Standard
225 myCurve : Curve from BRepAdaptor;
226 mySurface : Surface from BRepAdaptor;
227 myTrsfSurface : Surface from Geom;
228 myFirstParameter : Real from Standard;
229 myLastParameter : Real from Standard;
230 myUMinParameter : Real from Standard;
231 myUMaxParameter : Real from Standard;
232 myVMinParameter : Real from Standard;
233 myVMaxParameter : Real from Standard;
234 myBeanTolerance : Real from Standard;
235 myFaceTolerance : Real from Standard;
237 myCurveResolution: Real from Standard;
238 myCriteria : Real from Standard;
241 myExtrema : ExtCS from Extrema;
242 myProjector : ProjectPointOnSurf from GeomAPI;
243 myRangeManager : MarkedRangeSet from IntTools;
244 myDeflection : Real from Standard;
245 myContext : Context from IntTools;
248 myResults : SequenceOfRanges from IntTools;
249 myIsDone : Boolean from Standard;
251 end BeanFaceIntersector from IntTools;