0023839: Projection algorithm produces wrong results for set of data
[occt.git] / src / ProjLib / ProjLib_Cylinder.cdl
1 -- Created on: 1993-08-24
2 -- Created by: Bruno DUMORTIER
3 -- Copyright (c) 1993-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
21
22 class Cylinder from ProjLib inherits Projector from ProjLib
23
24         ---Purpose: Projects elementary curves on a cylinder.
25
26 uses
27     CurveType  from GeomAbs,
28     Cylinder   from gp,
29     Lin            from gp,
30     Circ           from gp,
31     Elips          from gp,
32     Parab          from gp,
33     Hypr           from gp,
34     Lin2d      from gp,
35     Circ2d     from gp,
36     Elips2d    from gp,
37     Parab2d    from gp,
38     Hypr2d     from gp
39
40 raises
41     NoSuchObject from Standard
42
43 is
44
45     Create returns Cylinder from ProjLib;
46         ---Purpose: Undefined projection.
47
48     Create(Cyl : Cylinder from gp) returns Cylinder from ProjLib;
49         ---Purpose: Projection on the cylinder <Cyl>.
50
51     Create(Cyl : Cylinder from gp;
52            L   : Lin from gp) returns Cylinder from ProjLib;
53         ---Purpose: Projection of the line <L> on the cylinder <Cyl>.
54
55     Create(Cyl : Cylinder  from gp;
56            C   : Circ from gp) returns Cylinder from ProjLib;
57         ---Purpose: Projection of the circle <C> on the cylinder <Cyl>.
58
59     Create(Cyl : Cylinder  from gp;
60            E   : Elips from gp) returns Cylinder from ProjLib;
61         ---Purpose: Projection of the ellipse <E> on the cylinder <Cyl>.
62
63
64
65     Init(me  : in out;
66          Cyl : Cylinder from gp)
67     is static;
68          
69     Project(me : in out;
70             L  : Lin from gp)
71     is redefined;
72
73     Project(me : in out;
74             C  : Circ from gp)
75     is redefined;
76
77     Project(me : in out;
78             E  : Elips from gp)
79     is redefined;
80
81      Project(me : in out;
82              P  : Parab from gp)
83      is redefined;
84  
85      Project(me : in out;
86              H  : Hypr from gp)
87      is redefined;
88              
89
90 fields
91
92     myCylinder : Cylinder from gp;
93
94 end Cylinder;