0024023: Revamp the OCCT Handle -- ambiguity
[occt.git] / src / BRepPrim / BRepPrim_Revolution.cdl
1 -- Created on: 1992-11-05
2 -- Created by: Remi LEQUETTE
3 -- Copyright (c) 1992-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 Revolution from BRepPrim inherits OneAxis from BRepPrim
18
19         ---Purpose: Implement  the OneAxis algoritm   for a revolution
20         --          surface.
21
22 uses
23     Face from TopoDS,
24     Edge from TopoDS,
25     
26     Curve from Geom,
27     Curve from Geom2d,
28     
29     Ax2   from gp,
30     Pnt2d from gp
31
32 is
33     Create(A : Ax2 from gp;
34            VMin, VMax : Real from  Standard;
35            M  : Curve from Geom;
36            PM : Curve from Geom2d) returns Revolution from BRepPrim;
37         ---Purpose: Create a  revolution body <M>  is the  meridian nd
38         --          must   be in the XZ  plane   of <A>. <PM>  is  the
39         --          meridian in the XZ plane.
40
41     Create(A : Ax2 from gp;
42            VMin, VMax : Real from  Standard) returns Revolution from BRepPrim
43         ---Purpose: Create a  revolution   body.  The meridian  is set
44         --          later. Reserved for derivated classes.
45     is protected;
46     
47     Meridian(me : in out; M : Curve from Geom; PM : Curve from Geom2d)
48     is protected;
49
50     MakeEmptyLateralFace(me) returns Face from TopoDS
51         ---Purpose: The surface normal should be directed  towards the
52         --          outside.
53     is virtual;
54     
55     MakeEmptyMeridianEdge(me; Ang : Real) returns Edge from TopoDS
56         ---Purpose: Returns  an  edge with  a 3D curve   made from the
57         --          meridian  in the XZ  plane rotated by <Ang> around
58         --          the Z-axis. Ang may be 0 or myAngle.
59     is virtual;
60     
61     MeridianValue(me; V : Real) returns Pnt2d from gp
62         ---Purpose: Returns the meridian point at parameter <V> in the
63         --          plane XZ.
64     is virtual;
65     
66     SetMeridianPCurve(me; E : in out Edge from TopoDS; F : Face from TopoDS)
67         ---Purpose: Sets the  parametric urve of  the edge <E>  in the
68         --          face <F>   to be  the  2d  representation  of  the
69         --          meridian.
70     is virtual;
71
72 fields
73     myMeridian  : Curve from Geom;
74     myPMeridian : Curve from Geom2d;
75
76 end Revolution;