0023985: There is no section between attached faces.
[occt.git] / src / IntAna / IntAna_IntConicQuad.cdl
CommitLineData
b311480e 1-- Created on: 1992-08-06
2-- Created by: Laurent BUCHARD
3-- Copyright (c) 1992-1999 Matra Datavision
4-- Copyright (c) 1999-2012 OPEN CASCADE SAS
5--
6-- The content of this file is subject to the Open CASCADE Technology Public
7-- License Version 6.5 (the "License"). You may not use the content of this file
8-- except in compliance with the License. Please obtain a copy of the License
9-- at http://www.opencascade.org and read it completely before using this file.
10--
11-- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12-- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13--
14-- The Original Code and all software distributed under the License is
15-- distributed on an "AS IS" basis, without warranty of any kind, and the
16-- Initial Developer hereby disclaims all such warranties, including without
17-- limitation, any warranties of merchantability, fitness for a particular
18-- purpose or non-infringement. Please see the License for the specific terms
19-- and conditions governing the rights and limitations under the License.
20
7fd59977 21
22
23class IntConicQuad from IntAna
24
25 ---Purpose: This class provides the analytic intersection between
26 -- a conic defined as an element of gp (Lin,Circ,Elips,
27 -- Parab,Hypr) and a quadric as defined in the class
28 -- Quadric from IntAna.
29 -- The intersection between a conic and a plane is treated
30 -- as a special case.
31 --
32 -- The result of the intersection are points (Pnt from
33 -- gp), associated with the parameter on the conic.
34 --
35 -- A call to an Intersection L:Lin from gp and
36 -- SPH: Sphere from gp can be written either :
37 -- IntAna_IntConicQuad Inter(L,IntAna_Quadric(SPH))
38 -- or :
39 -- IntAna_IntConicQuad Inter(L,SPH) (it is necessary
40 -- to include IntAna_Quadric.hxx in this case)
41
42
43
44uses Pnt from gp,
45 Lin from gp,
46 Circ from gp,
47 Elips from gp,
48 Parab from gp,
49 Hypr from gp,
50 Pln from gp,
51 Quadric from IntAna
52
53
54
55raises NotDone from StdFail,
56 OutOfRange from Standard,
57 DomainError from Standard
58
59is
60
61
62 Create
63
64 ---Purpose: Empty constructor.
65 --
66
67 returns IntConicQuad from IntAna;
68
69
70
71 Create(L: Lin from gp; Q: Quadric from IntAna)
72
73 ---Purpose: Creates the intersection between a line and a quadric.
74
75 returns IntConicQuad from IntAna;
76
77
78 Perform(me:in out; L: Lin from gp; Q: Quadric from IntAna)
79
80 ---Purpose: Intersects a line and a quadric.
81
82 is static;
83
84
85 Create(C: Circ from gp; Q: Quadric from IntAna)
86
87 ---Purpose: Creates the intersection between a circle and a quadric.
88
89 returns IntConicQuad from IntAna;
90
91
92 Perform(me: in out; C: Circ from gp; Q: Quadric from IntAna)
93
94 ---Purpose: Intersects a circle and a quadric.
95
96 is static;
97
98
99 Create(E: Elips from gp; Q: Quadric from IntAna)
100
101 ---Purpose: Creates the intersection between an ellipse and a quadric.
102
103 returns IntConicQuad from IntAna;
104
105
106 Perform(me:in out; E: Elips from gp; Q: Quadric from IntAna)
107
108 ---Purpose: Intersects an ellipse and a quadric.
109
110 is static;
111
112
113 Create(P: Parab from gp; Q: Quadric from IntAna)
114
115 ---Purpose: Creates the intersection between a parabola and a quadric.
116
117 returns IntConicQuad from IntAna;
118
119
120 Perform(me:in out; P: Parab from gp; Q: Quadric from IntAna)
121
122 ---Purpose: Intersects a parabola and a quadric.
123
124 is static;
125
126
127 Create(H: Hypr from gp; Q: Quadric from IntAna)
128
129 ---Purpose: Creates the intersection between an hyperbola and
130 -- a quadric.
131
132 returns IntConicQuad from IntAna;
133
134
135 Perform(me:in out; H: Hypr from gp; Q: Quadric from IntAna)
136
137 ---Purpose: Intersects an hyperbola and a quadric.
138
139 is static;
140
141----------------------------------------------------------------------
142-- Intersection between a Conic from gp and a Pln from IntAna
143-- The intersection is computed with Tolerances.
144----------------------------------------------------------------------
145
146 Create(L : Lin from gp; P: Pln from gp;
04cbc9d3 147 Tolang: Real from Standard;
148 Tol : Real from Standard = 0;
149 Len : Real from Standard = 0)
7fd59977 150
04cbc9d3 151 ---Purpose: Intersection between a line and a plane.
152 -- Tolang is used to determine if the angle between two
153 -- vectors is null.
154 -- Tol is used to check the distance between line and plane
155 -- on the distance <Len> from the origin of the line.
7fd59977 156
04cbc9d3 157 returns IntConicQuad from IntAna;
158
7fd59977 159
160 Perform(me: in out;
04cbc9d3 161 L : Lin from gp; P: Pln from gp; Tolang: Real from Standard;
162 Tol : Real from Standard = 0;
163 Len : Real from Standard = 0)
164
165 ---Purpose: Intersects a line and a plane.
166 -- Tolang is used to determine if the angle between two
167 -- vectors is null.
168 -- Tol is used to check the distance between line and plane
169 -- on the distance <Len> from the origin of the line.
170
171 is static;
7fd59977 172
173
174 Create(C : Circ from gp; P: Pln from gp;
175 Tolang,Tol: Real from Standard)
176
177 ---Purpose: Intersection between a circle and a plane.
178 -- Tolang is used to determine if the angle between two
179 -- vectors is null.
180 -- Tol is used to determine if a distance is null.
181
182 returns IntConicQuad from IntAna;
183
184
185 Perform(me: in out;
186 C : Circ from gp; P: Pln from gp; Tolang,Tol: Real from Standard)
187
188 ---Purpose: Intersects a circle and a plane.
189 -- Tolang is used to determine if the angle between two
190 -- vectors is null.
191 -- Tol is used to determine if a distance is null.
192
193 is static;
194
195
196 Create(E : Elips from gp; P: Pln from gp;
197 Tolang,Tol: Real from Standard)
198
199 ---Purpose: Intersection between an ellipse and a plane.
200 -- Tolang is used to determine if the angle between two
201 -- vectors is null.
202 -- Tol is used to determine if a distance is null.
203
204 returns IntConicQuad from IntAna;
205
206
207 Perform(me: in out;
208 E : Elips from gp; P: Pln from gp; Tolang,Tol: Real from Standard)
209
210 ---Purpose: Intersects an ellipse and a plane.
211 -- Tolang is used to determine if the angle between two
212 -- vectors is null.
213 -- Tol is used to determine if a distance is null.
214
215 is static;
216
217
218 Create(Pb: Parab from gp; P: Pln from gp;
219 Tolang: Real from Standard)
220
221 ---Purpose: Intersection between a parabola and a plane.
222 -- Tolang is used to determine if the angle between two
223 -- vectors is null.
224
225 returns IntConicQuad from IntAna;
226
227
228 Perform(me: in out;
229 Pb: Parab from gp; P: Pln from gp; Tolang: Real from Standard)
230
231 ---Purpose: Intersects a parabola and a plane.
232 -- Tolang is used to determine if the angle between two
233 -- vectors is null.
234
235 is static;
236
237
238 Create(H : Hypr from gp; P: Pln from gp;
239 Tolang: Real from Standard)
240
241 ---Purpose: Intersection between an hyperbola and a plane.
242 -- Tolang is used to determine if the angle between two
243 -- vectors is null.
244
245 returns IntConicQuad from IntAna;
246
247
248 Perform(me: in out;
249 H : Hypr from gp; P: Pln from gp; Tolang: Real from Standard)
250
251 ---Purpose: Intersects an hyperbola and a plane.
252 -- Tolang is used to determine if the angle between two
253 -- vectors is null.
254
255 is static;
256
257
258 IsDone(me)
259
260 ---Purpose: Returns TRUE if the creation completed.
261 --
262 ---C++: inline
263
264 returns Boolean from Standard
265 is static;
266
267
268 IsInQuadric(me)
269
270 ---Purpose: Returns TRUE if the conic is in the quadric.
271 --
272 ---C++: inline
273
274 returns Boolean from Standard
275
276 raises NotDone from StdFail
277 -- The exception NotDone is raised if IsDone returns False.
278
279 is static;
280
281
282 IsParallel(me)
283
284 ---Purpose: Returns TRUE if the line is in a quadric which
285 -- is parallel to the quadric.
286 ---C++: inline
287
288 returns Boolean from Standard
289
290 raises NotDone from StdFail
291 -- The exception NotDone is raised if IsDone returns False.
292
293 is static;
294
295
296 NbPoints(me)
297
298 ---Purpose: Returns the number of intersection point.
299 --
300 ---C++: inline
301
302 returns Integer from Standard
303
304 raises NotDone from StdFail,
305 DomainError from Standard
306 -- The exception NotDone is raised if IsDone returns False.
307 -- The exception DomainError is raised if IsInQuadric returns
308 -- True or IsParallel returns True.
309
310
311 is static;
312
313
314 Point(me; N: Integer from Standard)
315
316 ---Purpose: Returns the point of range N.
317 --
318 ---C++: inline
319 ---C++: return const&
320
321 returns Pnt from gp
322
323 raises NotDone from StdFail,
324 DomainError from Standard,
325 OutOfRange from Standard
326 -- The exception NotDone is raised if IsDone returns False.
327 -- The exception DomainError is raised if IsInQuadric returns
328 -- True or IsParallel returns true.
329 -- The exception OutOfRange is raised if N<=0 or N>NbPoints.
330
331 is static;
332
333
334 ParamOnConic(me; N: Integer from Standard)
335
336 ---Purpose: Returns the parameter on the line of the intersection
337 -- point of range N.
338 --
339 ---C++: inline
340
341 returns Real from Standard
342
343 raises NotDone from StdFail,
344 DomainError from Standard,
345 OutOfRange from Standard
346 -- The exception NotDone is raised if IsDone returns False.
347 -- The exception DomainError is raised if IsInQuadric returns
348 -- True or IsParallel returns true.
349 -- The exception OutOfRange is raised if N<=0 or N>NbPoints.
350
351 is static;
352
353
354
355fields
356
357 done : Boolean from Standard;
358 parallel : Boolean from Standard;
359 inquadric : Boolean from Standard;
360
361 nbpts : Integer from Standard;
362
363 pnts : Pnt from gp [4];
364 paramonc : Real from Standard [4];
365
366end IntConicQuad;
367
368