0023948: Wrong intersection between a surface of revolution and a plane.
[occt.git] / src / Convert / Convert_EllipseToBSplineCurve.cdl
1 -- Created on: 1991-10-10
2 -- Created by: Jean Claude VAUTHIER
3 -- Copyright (c) 1991-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
8 -- This library is free software; you can redistribute it and/or modify it under
9 -- the terms of the GNU Lesser General Public License version 2.1 as published
10 -- by the Free Software Foundation, with special exception defined in the file
11 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 -- distribution for complete text of the license and disclaimer of any warranty.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 class EllipseToBSplineCurve   from Convert   inherits ConicToBSplineCurve
18
19         --- Purpose :
20         --  This algorithm converts a ellipse into a rational B-spline curve.
21         --  The ellipse is represented an Elips2d from package gp with
22         --  the parametrization :
23         --  P (U) = 
24         --  Loc + (MajorRadius * Cos(U) * Xdir + MinorRadius * Sin(U) * Ydir)
25         --  where Loc is the center of the ellipse, Xdir and Ydir are the 
26         --  normalized directions of the local cartesian coordinate system of
27         --  the ellipse. The parametrization range is U [0, 2PI].
28         --- KeyWords :
29         --  Convert, Ellipse, BSplineCurve, 2D .
30
31 uses Elips2d              from gp,
32      ParameterisationType from Convert
33
34 raises DomainError from Standard
35
36 is
37
38   Create (E : Elips2d;
39            Parameterisation : ParameterisationType from Convert 
40             = Convert_TgtThetaOver2 )   returns EllipseToBSplineCurve;
41         --- Purpose : The equivalent B-spline curve has the same orientation
42         --  as the ellipse E.
43
44
45   Create (E : Elips2d; U1, U2 : Real;
46            Parameterisation : ParameterisationType from Convert 
47             = Convert_TgtThetaOver2 )   returns EllipseToBSplineCurve
48         --- Purpose : 
49         --  The ellipse E is limited between the parametric values U1, U2.
50         --  The equivalent B-spline curve is oriented from U1 to U2 and has
51         --  the same orientation as E.
52      raises DomainError;
53         --- Purpose :
54         --  Raised if U1 = U2 or U1 = U2 + 2.0 * Pi
55
56
57
58 end EllipseToBSplineCurve;
59