0026390: IntTools_Context should provide possibility to set tolerance used by PointOn...
[occt.git] / src / IntTools / IntTools_BeanFaceIntersector.cdl
CommitLineData
b311480e 1-- Created on: 2001-06-29
2-- Created by: Michael KLOKOV
973c2be1 3-- Copyright (c) 2001-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 BeanFaceIntersector from IntTools
17
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.
25
26uses
27
28 SequenceOfRoots from IntTools,
29 MarkedRangeSet from IntTools,
30 SequenceOfRanges from IntTools,
1e143abb 31 Context from IntTools,
7fd59977 32 ExtCS from Extrema,
33 ProjectPointOnSurf from GeomAPI,
34 Edge from TopoDS,
35 Face from TopoDS,
36 Curve from BRepAdaptor,
37 Surface from BRepAdaptor,
1e143abb 38 Box from Bnd,
7fd59977 39 CurveRangeSample from IntTools,
40 SurfaceRangeSample from IntTools,
41 ListOfCurveRangeSample from IntTools,
42 ListOfSurfaceRangeSample from IntTools,
43 CurveRangeLocalizeData from IntTools,
44 SurfaceRangeLocalizeData from IntTools,
45 Surface from Geom
46
47is
48 Create returns BeanFaceIntersector from IntTools;
49
50 Create(theEdge: Edge from TopoDS;
1e143abb 51 theFace: Face from TopoDS)
52 returns BeanFaceIntersector from IntTools;
53 ---Purpose:
54 --- Initializes the algorithm
55 ---
56 -- Warning:
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
61 ---
7fd59977 62
63 Create(theCurve : Curve from BRepAdaptor;
1e143abb 64 theSurface : Surface from BRepAdaptor;
65 theBeanTolerance: Real from Standard;
66 theFaceTolerance: Real from Standard)
67 returns BeanFaceIntersector from IntTools;
68 ---Purpose:
69 --- Initializes the algorithm
70 ---
7fd59977 71
72 Create(theCurve : Curve from BRepAdaptor;
1e143abb 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;
83 ---Purpose:
84 --- Initializes the algorithm
85 --- theUMinParameter, ... are used for
86 --- optimization purposes
87 ---
7fd59977 88
89 Init(me: in out;theEdge: Edge from TopoDS;
1e143abb 90 theFace: Face from TopoDS);
91 ---Purpose:
92 --- Initializes the algorithm
93 ---
94 -- Warning:
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
99 ---
7fd59977 100
101 Init(me: in out;theCurve : Curve from BRepAdaptor;
1e143abb 102 theSurface : Surface from BRepAdaptor;
103 theBeanTolerance: Real from Standard;
104 theFaceTolerance: Real from Standard);
105 ---Purpose:
106 --- Initializes the algorithm
107 ---
7fd59977 108
109 Init(me: in out;theCurve : Curve from BRepAdaptor;
1e143abb 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);
119 ---Purpose:
120 --- Initializes the algorithm
121 --- theUMinParameter, ... are used for
122 --- optimization purposes
123 ---
7fd59977 124
4f189102 125 SetContext(me: in out;
1e143abb 126 theContext: Context from IntTools);
127 ---Purpose:
128 --- Sets the intersecton context
129 ---
4f189102 130 Context(me)
1e143abb 131 returns Context from IntTools;
132 ---C++: return const &
4f189102 133 ---Purpose:
1e143abb 134 --- Gets the intersecton context
135 ---
7fd59977 136 SetBeanParameters(me: in out;theFirstParOnCurve : Real from Standard;
1e143abb 137 theLastParOnCurve : Real from Standard);
138 ---Purpose:
139 --- Set restrictions for curve
140 ---
7fd59977 141
142 SetSurfaceParameters(me: in out;theUMinParameter : Real from Standard;
1e143abb 143 theUMaxParameter : Real from Standard;
144 theVMinParameter : Real from Standard;
145 theVMaxParameter : Real from Standard);
146 ---Purpose:
147 --- Set restrictions for surface
148 ---
7fd59977 149
150 Perform(me: in out);
1e143abb 151 ---Purpose:
152 --- Launches the algorithm
153 ---
7fd59977 154
155 IsDone(me) returns Boolean from Standard;
1e143abb 156 ---C++: inline
7fd59977 157
158 Result(me)
1e143abb 159 returns SequenceOfRanges from IntTools;
160 ---C++: return const &
7fd59977 161
162 Result(me; theResults: out SequenceOfRanges from IntTools);
163
164 -- private
165
166 ComputeAroundExactIntersection(me: in out)
1e143abb 167 is private;
7fd59977 168
169 ComputeLinePlane(me: in out)
1e143abb 170 is private;
4e57c75e 171
7fd59977 172 FastComputeExactIntersection(me: in out)
4e57c75e 173 returns Integer from Standard is private;
7fd59977 174
175 ComputeUsingExtremum(me: in out)
1e143abb 176 is private;
7fd59977 177
178 ComputeNearRangeBoundaries(me: in out)
1e143abb 179 is private;
7fd59977 180
181 ComputeLocalized(me: in out)
1e143abb 182 returns Boolean from Standard is private;
183
7fd59977 184 ComputeRangeFromStartPoint(me: in out; ToIncreaseParameter : Boolean from Standard;
1e143abb 185 theParameter : Real from Standard;
186 theUParameter : Real from Standard;
187 theVParameter : Real from Standard)
188 is private;
7fd59977 189
190 ComputeRangeFromStartPoint(me: in out; ToIncreaseParameter : Boolean from Standard;
1e143abb 191 theParameter : Real from Standard;
192 theUParameter : Real from Standard;
193 theVParameter : Real from Standard;
194 theIndex : Integer from Standard)
195 is private;
7fd59977 196
197 Distance(me: in out; theArg : Real from Standard;
1e143abb 198 theUParameter: out Real from Standard;
199 theVParameter: out Real from Standard)
200 returns Real from Standard
201 is private;
7fd59977 202
203 Distance(me: in out; theArg: Real from Standard)
1e143abb 204 returns Real from Standard
205 is private;
7fd59977 206
207 LocalizeSolutions(me: in out; theCurveRange : CurveRangeSample from IntTools;
1e143abb 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
216 is private;
7fd59977 217
218 TestComputeCoinside(me: in out)
1e143abb 219 returns Boolean from Standard
220 is private;
7fd59977 221
222fields
223
224 -- sources
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;
236
237 myCurveResolution: Real from Standard;
238 myCriteria : Real from Standard;
239
240 -- tools
241 myExtrema : ExtCS from Extrema;
242 myProjector : ProjectPointOnSurf from GeomAPI;
243 myRangeManager : MarkedRangeSet from IntTools;
244 myDeflection : Real from Standard;
1e143abb 245 myContext : Context from IntTools;
7fd59977 246
247 -- results
248 myResults : SequenceOfRanges from IntTools;
249 myIsDone : Boolean from Standard;
250
251end BeanFaceIntersector from IntTools;