0024428: Implementation of LGPL license
[occt.git] / src / BRepOffsetAPI / BRepOffsetAPI_DraftAngle.cdl
1 -- Created on: 1995-02-22
2 -- Created by: Jacques GOUSSARD
3 -- Copyright (c) 1995-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
9 -- under the terms of the GNU Lesser General Public 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 DraftAngle from BRepOffsetAPI inherits ModifyShape from BRepBuilderAPI
18
19         ---Purpose: Taper-adding transformations on a shape.
20         -- The resulting shape is constructed by defining one face
21         -- to be tapered after another one, as well as the
22         -- geometric properties of their tapered transformation.
23         -- Each tapered transformation is propagated along the
24         -- series of faces which are tangential to one another and
25         -- which contains the face to be tapered.
26         -- This algorithm is useful in the construction of molds or
27         -- dies. It facilitates the removal of the article being produced.
28         -- A DraftAngle object provides a framework for:
29         -- - initializing the construction algorithm with a given shape,
30         -- - acquiring the data characterizing the faces to be tapered,
31         -- - implementing the construction algorithm, and
32         -- - consulting the results.
33         -- Warning
34         -- - This algorithm treats planar, cylindrical and conical faces.
35         -- - Do not use shapes, which with a draft angle added to
36         --   a face would modify the topology. This would, for
37         --   example, involve creation of new vertices, edges or
38         --   faces, or suppression of existing vertices, edges or faces.
39         -- - Any face, which is continuous in tangency with the
40         --   face to be tapered, will also be tapered. These
41         --   connected faces must also respect the above criteria. 
42
43
44 uses 
45     Shape             from TopoDS,
46     Face              from TopoDS,
47     ShapeModification from BRepBuilderAPI,
48     ListOfShape       from TopTools,
49     Dir               from gp,
50     Pln               from gp,
51     ErrorStatus       from Draft
52
53 raises
54     NotDone           from StdFail,
55     NullObject        from Standard,
56     NoSuchObject      from Standard,
57     ConstructionError from Standard
58      
59 is
60
61     Create
62
63         returns DraftAngle from BRepOffsetAPI;
64         ---Purpose: Constructs an empty algorithm to perform
65         -- taper-adding transformations on faces of a shape.
66         -- Use the Init function to define the shape to be tapered.
67
68     Create(S: Shape from TopoDS)
69         returns DraftAngle from BRepOffsetAPI;
70         ---Purpose: Initializes an algorithm to perform taper-adding
71         -- transformations on faces of the shape S.
72         -- S will be referred to as the initial shape of the algorithm.
73
74     Clear(me: in out)
75     
76         ---Purpose: Cancels the results of all taper-adding transformations
77         -- performed by this algorithm on the initial shape. These
78         -- results will have been defined by successive calls to the function Add.
79         is static;
80
81
82     Init(me: in out; S: Shape from TopoDS)
83     
84         ---Purpose: Initializes, or reinitializes this taper-adding algorithm with the shape S.
85         -- S will be referred to as the initial shape of this algorithm.
86
87         is static;
88
89
90     Add(me: in out; F           : Face    from TopoDS; 
91                     Direction   : Dir     from gp;
92                     Angle       : Real    from Standard; 
93                     NeutralPlane: Pln     from gp; 
94                     Flag        : Boolean from  Standard = Standard_True)
95         ---Purpose:  Adds the face F, the direction
96         -- Direction, the angle Angle, the plane NeutralPlane, and the flag
97         -- Flag to the framework created at construction time, and with this
98         -- data, defines the taper-adding transformation.
99         -- F is a face, which belongs to the initial shape of this algorithm or
100         -- to the shape loaded by the function Init.
101         -- Only planar, cylindrical or conical faces can be tapered:
102         -- - If the face F is planar, it is tapered by inclining it
103         --   through the angle Angle about the line of intersection between the
104         --   plane NeutralPlane and F.
105         --   Direction indicates the side of NeutralPlane from which matter is
106         --   removed if Angle is positive or added if Angle is negative.
107         -- - If F is cylindrical or conical, it is transformed in the
108         --   same way on a single face, resulting in a conical face if F
109         -- is cylindrical, and a conical or cylindrical face if it is already conical.
110         -- The taper-adding transformation is propagated from the face F along
111         -- the series of planar, cylindrical or conical faces containing F,
112         -- which are tangential to one another.
113         -- Use the function AddDone to check if this taper-adding transformation is successful.
114         -- Warning
115         -- Nothing is done if:
116         -- - the face F does not belong to the initial shape of this algorithm, or
117         -- - the face F is not planar, cylindrical or conical.
118         -- Exceptions
119         -- - Standard_NullObject if the initial shape is not
120         --   defined, i.e. if this algorithm has not been initialized
121         --   with the non-empty constructor or the Init function.
122         -- - Standard_ConstructionError if the previous call to
123         --   Add has failed. The function AddDone ought to have
124         --   been used to check for this, and the function Remove
125         --   to cancel the results of the unsuccessful taper-adding
126         --   transformation and to retrieve the previous shape.       
127     raises NullObject from Standard,
128                ConstructionError from Standard
129         is static;
130
131
132     AddDone(me)
133     
134         ---Purpose: Returns true if the previous taper-adding
135         -- transformation performed by this algorithm in the last
136         -- call to Add, was successful.
137         -- If AddDone returns false:
138         -- - the function ProblematicShape returns the face
139         --   on which the error occurred,
140         -- - the function Remove has to be used to cancel the
141         --   results of the unsuccessful taper-adding
142         --   transformation and to retrieve the previous shape.
143         --   Exceptions
144         -- Standard_NullObject if the initial shape has not
145         -- been defined, i.e. if this algorithm has not been
146         -- initialized with the non-empty constructor or the .Init function.
147         returns Boolean from Standard
148         raises NullObject from Standard
149              
150         is static;
151
152
153     Remove(me: in out; F: Face from TopoDS)
154         ---Purpose: Cancels the taper-adding transformation previously
155         -- performed by this algorithm on the face F and the
156         -- series of tangential faces which contain F, and retrieves
157         -- the shape before the last taper-adding transformation.
158         -- Warning
159         -- You will have to use this function if the previous call to
160         -- Add fails. Use the function AddDone to check it.
161         -- Exceptions
162         -- - Standard_NullObject if the initial shape has not
163         --  been defined, i.e. if this algorithm has not been
164         --  initialized with the non-empty constructor or the Init function.
165         -- - Standard_NoSuchObject if F has not been added
166         --   or has already been removed. 
167         raises NullObject from Standard,
168                NoSuchObject from Standard
169              
170         is static;
171
172
173     ProblematicShape(me)
174
175         returns Shape from TopoDS
176         ---Purpose: Returns the shape on which an error occurred after an
177         -- unsuccessful call to Add or when IsDone returns false.
178         -- Exceptions
179         -- Standard_NullObject if the initial shape has not been
180         -- defined, i.e. if this algorithm has not been initialized with
181         -- the non-empty constructor or the Init function.
182         ---C++: return const&
183         raises NullObject from Standard
184           
185         is static;
186
187
188
189     Status(me)
190         ---Purpose: Returns an error  status when an error has occured
191         --          (Face,   Edge    or Vertex  recomputaion problem).
192         --          Otherwise returns Draft_NoError. The method may be
193         --          called if AddDone  returns Standard_False, or when
194         --          IsDone returns Standard_False.
195     
196         returns ErrorStatus from Draft
197         raises NullObject from Standard
198                -- The  exception is   raised  if  no  shape has   been
199                -- given(constructor or Init method).
200                
201         is static;
202
203
204     ConnectedFaces(me; F: Face from TopoDS)
205     
206         returns ListOfShape from TopTools
207         ---Purpose: Returns all  the  faces   which  have been   added
208         --          together with the face <F>.
209         --          
210         ---C++: return const&
211
212         raises NullObject from Standard,
213                -- The  exception is   raised  if  no  shape has   been
214                -- given(constructor or Init method).
215                NoSuchObject from Standard,
216                -- The exception is raised if F has not been added.
217                NotDone from StdFail
218                -- The exception is raised if AddDone returns False.
219         is static;
220
221
222     ModifiedFaces(me)
223     
224         returns ListOfShape from TopTools
225         ---Purpose: Returns all the faces  on which a modification has
226         --          been given.
227         --          
228         ---C++: return const&
229
230         raises NullObject from Standard,
231                -- The  exception is   raised  if  no  shape has   been
232                -- given(constructor or Init method).
233                NotDone from StdFail
234                -- The exception is raised if AddDone returns False.
235         is static;
236
237
238     Build(me : in out)
239     
240         ---Purpose: Builds the resulting shape (redefined from MakeShape).
241         ---Level: Public
242         is redefined;
243
244     CorrectWires(me : in out);
245     
246     Generated (me: in out; S : Shape from TopoDS)
247         ---Purpose: Returns the  list   of shapes generated   from the
248         --          shape <S>. 
249         ---C++: return const & 
250         ---Level: Public
251     returns ListOfShape from TopTools
252     is redefined virtual;
253
254
255
256     Modified (me: in out; S : Shape from TopoDS)
257         ---Purpose: Returns the list  of shapes modified from the shape
258         --          <S>. 
259         ---C++: return const & 
260         ---Level: Public
261     returns ListOfShape from TopTools
262     is redefined virtual;
263
264 fields 
265
266     myModifiedShapes : ListOfShape from TopTools;
267
268 end DraftAngle;
269
270
271
272
273