0024023: Revamp the OCCT Handle -- ambiguity
[occt.git] / src / BRepOffsetAPI / BRepOffsetAPI_MakeThickSolid.cdl
1 -- Created on: 1996-02-13
2 -- Created by: Yves FRICAUD
3 -- Copyright (c) 1996-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 MakeThickSolid from BRepOffsetAPI inherits MakeOffsetShape from BRepOffsetAPI
18
19         ---Purpose: Describes functions to build hollowed solids.
20         -- A hollowed solid is built from an initial solid and a set of
21         -- faces on this solid, which are to be removed. The
22         -- remaining faces of the solid become the walls of the
23         -- hollowed solid, their thickness defined at the time of construction.
24         --        the solid is built from an initial
25         --          solid  <S> and a  set of  faces {Fi} from  <S>,
26         --          builds a   solid  composed  by two shells closed  by
27         --          the {Fi}. First shell <SS>   is composed by all
28         --          the faces of <S> expected {Fi}.  Second shell is
29         --          the offset shell of <SS>.
30         -- A MakeThickSolid object provides a framework for:
31         -- - defining the cross-section of a hollowed solid,
32         -- - implementing the construction algorithm, and
33         -- - consulting the result.
34 uses
35
36     MakeOffset  from BRepOffset,
37     Mode        from BRepOffset,
38     Shape       from TopoDS,
39     Face        from TopoDS,
40     ListOfShape from TopTools,  
41     JoinType    from GeomAbs
42     
43 is
44
45
46     Create returns MakeThickSolid from BRepOffsetAPI;
47
48     
49     Create ( S            : Shape       from TopoDS;
50              ClosingFaces : ListOfShape from TopTools;
51              Offset       : Real        from Standard;
52              Tol          : Real        from Standard  ;
53              Mode         : Mode        from BRepOffset = BRepOffset_Skin;
54              Intersection : Boolean     from Standard   = Standard_False;
55              SelfInter    : Boolean     from Standard   = Standard_False;
56              Join         : JoinType    from GeomAbs    = GeomAbs_Arc)
57         ---Purpose:  Constructs a hollowed solid from
58         -- the solid S by removing the set of faces ClosingFaces from S, where:
59         --       Offset defines the thickness of the walls. Its sign indicates
60         --   which side of the surface of the solid the hollowed shape is built on;
61         --  - Tol defines the tolerance criterion for coincidence in generated shapes;
62         --  - Mode defines the construction type of parallels applied to free
63         --   edges of shape S. Currently, only one construction type is
64         --   implemented, namely the one where the free edges do not generate
65         --   parallels; this corresponds to the default value BRepOffset_Skin;
66         --   Intersection specifies how the algorithm must work in order to
67         --   limit the parallels to two adjacent shapes:
68         -- - if Intersection is false (default value), the intersection
69         --   is calculated with the parallels to the two adjacent shapes,
70         --  -     if Intersection is true, the intersection is calculated by
71         --   taking account of all parallels generated; this computation
72         --   method is more general as it avoids self-intersections
73         --   generated in the offset shape from features of small dimensions
74         --   on shape S, however this method has not been completely
75         --   implemented and therefore is not recommended for use;
76         --  -     SelfInter tells the algorithm whether a computation to
77         --   eliminate self-intersections needs to be applied to the
78         --   resulting shape. However, as this functionality is not yet
79         --   implemented, you should use the default value (false);
80         --  - Join defines how to fill the holes that may appear between
81         --   parallels to the two adjacent faces. It may take values
82         --   GeomAbs_Arc or GeomAbs_Intersection:
83         -- - if Join is equal to GeomAbs_Arc, then pipes are generated
84         --           between two free edges of two adjacent parallels,
85         --           and spheres are generated on "images" of vertices;
86         --           it is the default value,
87         -- - if Join is equal to GeomAbs_Intersection,
88         --   then the parallels to the two adjacent faces are
89         --   enlarged and intersected, so that there are no free
90         --   edges on parallels to faces.
91         --   Warnings
92         -- Since the algorithm of MakeThickSolid is based on
93         -- MakeOffsetShape algorithm, the warnings are the same as for
94         -- MakeOffsetShape.
95     returns MakeThickSolid from BRepOffsetAPI;
96     
97     Build (me : in out)
98     is redefined;
99         ---Purpose: Builds the resulting shape (redefined from MakeOffsetShape).
100         ---Level: Public     
101
102
103     Modified (me: in out; S : Shape from TopoDS)
104         ---Purpose: Returns the list  of shapes modified from the shape
105         --          <S>. 
106         ---C++: return const & 
107         ---Level: Public
108     returns ListOfShape from TopTools
109     is redefined virtual;
110
111
112 end MakeThickSolid;