0022946: BRepFeat_SplitShape crashes on splitting a face by two edges
[occt.git] / src / BRepFeat / BRepFeat_MakeRevol.cdl
1 -- Created on: 1996-02-13
2 -- Created by: Jacques GOUSSARD
3 -- Copyright (c) 1996-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
23 class MakeRevol from BRepFeat inherits Form from BRepFeat
24
25         ---Purpose: Describes functions to build revolved shells from basis shapes.
26
27 uses Shape                     from TopoDS,
28      Face                      from TopoDS,
29      Edge                      from TopoDS,
30      DataMapOfShapeListOfShape from TopTools,
31      Ax1                       from gp,
32      DataMapOfShapeShape       from TopTools,
33      SequenceOfCurve           from TColGeom,
34      Curve                     from Geom,
35      SequenceOfCurve           from TColGeom,
36      StatusError               from BRepFeat
37      
38     raises ConstructionError from Standard
39
40 is
41
42
43     Create
44
45         returns MakeRevol from BRepFeat;
46         ---Purpose: initializes the revolved shell class.
47         ---C++: inline
48
49
50     Create(Sbase     : Shape   from TopoDS;
51            Pbase     : Shape   from TopoDS;
52            Skface    : Face    from TopoDS;
53            Axis      : Ax1     from gp;
54            Fuse      : Integer from Standard;
55            Modify    : Boolean from Standard)
56     
57         ---Purpose: a face Pbase is selected in the
58         --   shape Sbase to serve as the basis for the
59         --   revolved shell. The revolution will be defined
60         --   by the axis Axis and Fuse offers a choice between:
61         --   -   removing matter with a Boolean cut using the setting 0
62         --   -   adding matter with Boolean fusion using the setting 1.
63         --     The sketch face Skface serves to determine
64         -- the type of operation. If it is inside the basis
65         -- shape, a local operation such as glueing can be performed.
66         ---C++: inline
67                 returns MakeRevol from BRepFeat;
68
69
70     Init(me: in out; Sbase     : Shape   from TopoDS;
71                      Pbase     : Shape   from TopoDS;
72                      Skface    : Face    from TopoDS;
73                      Axis      : Ax1     from gp;
74                      Fuse      : Integer from Standard;
75                      Modify    : Boolean from Standard)
76     
77         is static;
78
79
80     Add(me: in out; E: Edge from TopoDS; OnFace: Face from TopoDS)
81
82         ---Purpose: Indicates that the edge <E> will slide on the face
83         -- <OnFace>. Raises ConstructionError if the  face does not belong to the
84         -- basis shape, or the edge to the prismed shape.
85         raises ConstructionError from Standard
86         
87         is static;
88
89
90     Perform(me: in out; Angle: Real from Standard)
91     
92         is static;
93
94
95     Perform(me: in out; Until: Shape from TopoDS)
96     
97         is static;
98
99
100     Perform(me: in out; From : Shape from TopoDS;
101                         Until: Shape from TopoDS)
102     
103         is static;
104         ---Purpose: Reconstructs the feature topologically.
105
106     PerformThruAll(me: in out)
107     
108         is static;
109         ---Purpose: Builds an infinite shell. The infinite descendants
110         -- will not be kept in the result.
111
112     PerformUntilAngle(me: in out; Until :  Shape from TopoDS;
113                         Angle :  Real  from Standard)
114     
115         is static;
116         ---Purpose: Assigns both a limiting shape, Until from
117         -- TopoDS_Shape, and an angle, Angle at
118         -- which to stop generation of the revolved shell feature.
119     Curves(me: in out; S : in out SequenceOfCurve from TColGeom);
120     
121
122     BarycCurve(me: in out)    
123         returns Curve from Geom;
124
125
126 fields
127
128     myPbase  : Shape                     from TopoDS;
129     mySlface : DataMapOfShapeListOfShape from TopTools;
130     myAxis   : Ax1                       from gp;
131     myCurves : SequenceOfCurve           from TColGeom;
132     myBCurve : Curve                     from Geom;
133     myStatusError : StatusError          from BRepFeat;
134
135 end MakeRevol;