0024023: Revamp the OCCT Handle -- ambiguity
[occt.git] / src / BRepFeat / BRepFeat_MakeRevolutionForm.cdl
1 -- Created on: 1997-10-14
2 -- Created by: Olga KOULECHOVA
3 -- Copyright (c) 1997-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 MakeRevolutionForm from BRepFeat inherits RibSlot from BRepFeat
18
19         ---Purpose: MakeRevolutionForm Generates a surface of
20         -- revolution in the feature as it slides along a
21         -- revolved face in the basis shape.
22         -- The semantics of mechanical features is built
23         -- around giving thickness to a contour. This
24         -- thickness can either be unilateral - on one side
25         -- of the contour - or bilateral - on both sides. As
26         -- in the semantics of form features, the thickness
27         -- is defined by construction of shapes in specific contexts.
28         -- The development contexts differ, however,in
29         -- case of mechanical features. Here they include extrusion:
30         -- -   to a limiting face of the basis shape
31         -- -   to or from a limiting plane
32         -- -   to a height.
33         
34 uses Shape                     from TopoDS,
35      Face                      from TopoDS,
36      Wire                      from TopoDS,
37      Edge                      from TopoDS,
38      DataMapOfShapeListOfShape from TopTools,
39      Dir                       from gp,
40      Ax1                       from gp,
41      Vec                       from gp,
42      DataMapOfShapeShape       from TopTools,
43      ListOfShape               from TopTools,
44      SequenceOfCurve           from TColGeom,
45      Curve                     from Geom,
46      Plane                     from Geom,
47      Pnt                       from gp,
48      StatusError               from BRepFeat
49      
50 raises ConstructionError from Standard
51
52 is
53
54
55     Create
56
57         returns MakeRevolutionForm from BRepFeat;
58         ---Purpose: initializes the linear form class.
59         ---C++: inline
60
61     Create(Sbase     : Shape   from TopoDS;
62            W         : Wire    from TopoDS;
63            Plane     : Plane   from Geom; 
64            Axis      : Ax1     from gp;
65            Height1   : Real    from Standard;
66            Height2   : Real    from Standard;
67            Fuse      : Integer from Standard; 
68            Sliding   : in out Boolean from Standard)
69     
70         ---Purpose: a contour W, a shape Sbase and a plane P are initialized to serve as
71         --   the basic elements in the construction of the rib or groove. The axis Axis of the
72         --   revolved surface in the basis shape defines the feature's axis of revolution.
73         --   Height1 and Height2 may be used as limits to the construction of the feature.
74         -- Fuse offers a choice between:
75         -- -   removing matter with a Boolean cut using the setting 0 in case of the groove
76         -- -   adding matter with Boolean fusion using the setting 1 in case of the rib.
77                 ---C++: inline
78                 returns MakeRevolutionForm from BRepFeat;
79
80
81     Init(me: in out;  Sbase     : Shape   from TopoDS;
82                       W         : Wire    from TopoDS;
83                       Plane     : Plane   from Geom; 
84                       Axis      : Ax1     from gp;
85                       Height1   : Real    from Standard;         
86                       Height2   : Real    from Standard;         
87                       Fuse      : Integer from Standard; 
88                       Sliding   : in out Boolean from Standard)
89     
90         is static;
91         ---Purpose: Initializes this construction algorithm
92         -- A contour W, a shape Sbase and a plane P are initialized to serve as the basic elements
93         -- in the construction of the rib or groove. The axis Axis of the revolved surface in the basis
94         -- shape defines the feature's axis of revolution. Height1 and Height2 may be
95         -- used as limits to the construction of the feature.
96         -- Fuse offers a choice between:
97         -- -   removing matter with a Boolean cut using the setting 0 in case of the groove
98         -- -   adding matter with Boolean fusion using the setting 1 in case of the rib.
99         
100     Add(me: in out; E: Edge from TopoDS; OnFace: Face from TopoDS)
101
102         ---Purpose: Indicates that the edge <E> will slide on the face
103         -- <OnFace>. Raises ConstructionError  if the  face does not belong to the
104         -- basis shape, or the edge to the prismed shape.
105         raises ConstructionError from Standard
106         
107         is static;
108
109
110
111     Perform(me: in out)
112     
113         is static;
114         ---Purpose: Performs a prism from the wire to the plane
115         -- along the basis shape S. Reconstructs the feature topologically.
116
117
118     Propagate(me: in out; L: in out ListOfShape from TopTools;
119                           F: Face from TopoDS;
120                           FPoint, LPoint:   Pnt from gp; 
121                           falseside : in out Boolean from Standard)
122         returns Boolean from Standard
123         is static;
124
125
126 fields
127
128     myAxe      : Ax1                       from gp;
129     myHeight1  : Real                      from Standard;
130     myHeight2  : Real                      from Standard;
131     mySliding  : Boolean                   from Standard;
132     myPln      : Plane                     from Geom;    
133     myBnd      : Real                      from Standard;
134     mySlface   : DataMapOfShapeListOfShape from TopTools;
135     myListOfEdges : ListOfShape            from TopTools;
136     myTol      : Real                      from Standard;
137     myAngle1   : Real                      from Standard;
138     myAngle2   : Real                      from Standard;
139
140 end MakeRevolutionForm;
141
142
143