0022967: Boolean operations between two cylinders with orthogonal axis generate a...
[occt.git] / src / IntTools / IntTools_BeanFaceIntersector.cdl
CommitLineData
7fd59977 1-- File: IntTools_BeanFaceIntersector.cdl
2-- Created: Fri Jun 29 10:17:11 2001
3-- Author: Michael KLOKOV
4-- <mkk@kurox>
5---Copyright: Matra Datavision 2001
6
7class BeanFaceIntersector from IntTools
8
9 ---Purpose: The class BeanFaceIntersector computes ranges of parameters on
10 -- the curve of a bean(part of edge) that bound the parts of bean which
11 -- are on the surface of a face according to edge and face tolerances.
12 -- Warning: The real boundaries of the face are not taken into account,
13 -- Most of the result parts of the bean lays only inside the region of the surface,
14 -- which includes the inside of the face. And the parts which are out of this region can be
15 -- excluded from the result.
16
17uses
18
19 SequenceOfRoots from IntTools,
20 MarkedRangeSet from IntTools,
21 SequenceOfRanges from IntTools,
4f189102 22 Context from IntTools,
7fd59977 23 ExtCS from Extrema,
24 ProjectPointOnSurf from GeomAPI,
25 Edge from TopoDS,
26 Face from TopoDS,
27 Curve from BRepAdaptor,
28 Surface from BRepAdaptor,
29 Box from Bnd,
30 CurveRangeSample from IntTools,
31 SurfaceRangeSample from IntTools,
32 ListOfCurveRangeSample from IntTools,
33 ListOfSurfaceRangeSample from IntTools,
34 CurveRangeLocalizeData from IntTools,
35 SurfaceRangeLocalizeData from IntTools,
36 Surface from Geom
37
38is
39 Create returns BeanFaceIntersector from IntTools;
40
41 Create(theEdge: Edge from TopoDS;
42 theFace: Face from TopoDS)
43 returns BeanFaceIntersector from IntTools;
44 ---Purpose:
45 --- Initializes the algorithm
46 ---
47 -- Warning:
48 --- The parts of the edge which are on
49 --- the surface of the face and belong to
50 --- the whole in the face (if there is)
51 --- is considered as result
52 ---
53
54 Create(theCurve : Curve from BRepAdaptor;
55 theSurface : Surface from BRepAdaptor;
56 theBeanTolerance: Real from Standard;
57 theFaceTolerance: Real from Standard)
58 returns BeanFaceIntersector from IntTools;
59 ---Purpose:
60 --- Initializes the algorithm
61 ---
62
63 Create(theCurve : Curve from BRepAdaptor;
64 theSurface : Surface from BRepAdaptor;
65 theFirstParOnCurve: Real from Standard;
66 theLastParOnCurve : Real from Standard;
67 theUMinParameter : Real from Standard;
68 theUMaxParameter : Real from Standard;
69 theVMinParameter : Real from Standard;
70 theVMaxParameter : Real from Standard;
71 theBeanTolerance : Real from Standard;
72 theFaceTolerance : Real from Standard)
73 returns BeanFaceIntersector from IntTools;
74 ---Purpose:
75 --- Initializes the algorithm
76 --- theUMinParameter, ... are used for
77 --- optimization purposes
78 ---
79
80 Init(me: in out;theEdge: Edge from TopoDS;
81 theFace: Face from TopoDS);
82 ---Purpose:
83 --- Initializes the algorithm
84 ---
85 -- Warning:
86 --- The parts of the edge which are on
87 --- the surface of the face and belong to
88 --- the whole in the face (if there is)
89 --- is considered as result
90 ---
91
92 Init(me: in out;theCurve : Curve from BRepAdaptor;
93 theSurface : Surface from BRepAdaptor;
94 theBeanTolerance: Real from Standard;
95 theFaceTolerance: Real from Standard);
96 ---Purpose:
97 --- Initializes the algorithm
98 ---
99
100 Init(me: in out;theCurve : Curve from BRepAdaptor;
101 theSurface : Surface from BRepAdaptor;
102 theFirstParOnCurve: Real from Standard;
103 theLastParOnCurve : Real from Standard;
104 theUMinParameter : Real from Standard;
105 theUMaxParameter : Real from Standard;
106 theVMinParameter : Real from Standard;
107 theVMaxParameter : Real from Standard;
108 theBeanTolerance : Real from Standard;
109 theFaceTolerance : Real from Standard);
110 ---Purpose:
111 --- Initializes the algorithm
112 --- theUMinParameter, ... are used for
113 --- optimization purposes
114 ---
115
4f189102
P
116 SetContext(me: in out;
117 theContext: Context from IntTools);
7fd59977 118 ---Purpose:
4f189102 119 --- Sets the intersecton context
7fd59977 120 ---
4f189102
P
121 Context(me)
122 returns Context from IntTools;
123 ---C++: return const &
124 ---Purpose:
125 --- Gets the intersecton context
126 ---
7fd59977 127 SetBeanParameters(me: in out;theFirstParOnCurve : Real from Standard;
128 theLastParOnCurve : Real from Standard);
129 ---Purpose:
130 --- Set restrictions for curve
131 ---
132
133 SetSurfaceParameters(me: in out;theUMinParameter : Real from Standard;
134 theUMaxParameter : Real from Standard;
135 theVMinParameter : Real from Standard;
136 theVMaxParameter : Real from Standard);
137 ---Purpose:
138 --- Set restrictions for surface
139 ---
140
141 Perform(me: in out);
142 ---Purpose:
143 --- Launches the algorithm
144 ---
145
146 IsDone(me) returns Boolean from Standard;
147 ---C++: inline
148
149 Result(me)
150 returns SequenceOfRanges from IntTools;
151 ---C++: return const &
152
153 Result(me; theResults: out SequenceOfRanges from IntTools);
154
155 -- private
156
157 ComputeAroundExactIntersection(me: in out)
158 is private;
159
160 ComputeLinePlane(me: in out)
161 is private;
162
163 FastComputeExactIntersection(me: in out)
164 returns Boolean from Standard is private;
165
166 ComputeUsingExtremum(me: in out)
167 is private;
168
169 ComputeNearRangeBoundaries(me: in out)
170 is private;
171
172 ComputeLocalized(me: in out)
173 returns Boolean from Standard is private;
174
175 ComputeRangeFromStartPoint(me: in out; ToIncreaseParameter : Boolean from Standard;
176 theParameter : Real from Standard;
177 theUParameter : Real from Standard;
178 theVParameter : Real from Standard)
179 is private;
180
181 ComputeRangeFromStartPoint(me: in out; ToIncreaseParameter : Boolean from Standard;
182 theParameter : Real from Standard;
183 theUParameter : Real from Standard;
184 theVParameter : Real from Standard;
185 theIndex : Integer from Standard)
186 is private;
187
188 Distance(me: in out; theArg : Real from Standard;
189 theUParameter: out Real from Standard;
190 theVParameter: out Real from Standard)
191 returns Real from Standard
192 is private;
193
194 Distance(me: in out; theArg: Real from Standard)
195 returns Real from Standard
196 is private;
197
198 LocalizeSolutions(me: in out; theCurveRange : CurveRangeSample from IntTools;
199 theBoxCurve : Box from Bnd;
200 theSurfaceRange: SurfaceRangeSample from IntTools;
201 theBoxSurface : Box from Bnd;
202 theCurveData : in out CurveRangeLocalizeData from IntTools;
203 theSurfaceData : in out SurfaceRangeLocalizeData from IntTools;
204 theListCurveRange: in out ListOfCurveRangeSample from IntTools;
205 theListSurfaceRange: in out ListOfSurfaceRangeSample from IntTools)
206 returns Boolean from Standard
207 is private;
208
209 TestComputeCoinside(me: in out)
210 returns Boolean from Standard
211 is private;
212
213fields
214
215 -- sources
216 myCurve : Curve from BRepAdaptor;
217 mySurface : Surface from BRepAdaptor;
218 myTrsfSurface : Surface from Geom;
219 myFirstParameter : Real from Standard;
220 myLastParameter : Real from Standard;
221 myUMinParameter : Real from Standard;
222 myUMaxParameter : Real from Standard;
223 myVMinParameter : Real from Standard;
224 myVMaxParameter : Real from Standard;
225 myBeanTolerance : Real from Standard;
226 myFaceTolerance : Real from Standard;
227
228 myCurveResolution: Real from Standard;
229 myCriteria : Real from Standard;
230
231 -- tools
232 myExtrema : ExtCS from Extrema;
233 myProjector : ProjectPointOnSurf from GeomAPI;
234 myRangeManager : MarkedRangeSet from IntTools;
235 myDeflection : Real from Standard;
4f189102 236 myContext : Context from IntTools;
7fd59977 237
238 -- results
239 myResults : SequenceOfRanges from IntTools;
240 myIsDone : Boolean from Standard;
241
242end BeanFaceIntersector from IntTools;