0024023: Revamp the OCCT Handle -- ambiguity
[occt.git] / src / BRepLib / BRepLib_MakeShape.cdl
1 -- Created on: 1993-07-21
2 -- Created by: Remi LEQUETTE
3 -- Copyright (c) 1993-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 deferred class MakeShape from BRepLib inherits Command from BRepLib
18
19         ---Purpose: This    is  the  root     class for     all  shape
20         --          constructions.  It stores the result.
21         --          
22         --          It  provides deferred methods to trace the history
23         --          of sub-shapes.
24
25 uses
26     Shape             from TopoDS,
27     Face              from TopoDS,
28     Edge              from TopoDS,
29     ShapeModification from BRepLib,
30     ListOfShape       from TopTools
31     
32     
33 raises
34     NotDone           from StdFail
35
36 is
37     Initialize;
38     
39     Build(me : in out);
40         ---Purpose: This is  called by  Shape().  It does  nothing but
41         --          may be redefined.
42         ---Level: Public
43         
44     Shape(me) returns Shape from TopoDS
45         ---C++: return const &
46         ---C++: alias "Standard_EXPORT operator TopoDS_Shape() const;"
47         ---Level: Public
48     raises
49         NotDone from StdFail
50     is static;
51
52
53     -----------------------------------------------------------
54     --- the following methods do nothing and must be redefined
55     --- for faces creations.
56
57     FaceStatus(me; F: Face from TopoDS) 
58         ---Purpose: returns the status of the Face after
59         --          the shape creation. 
60         ---Level: Public
61     returns ShapeModification from BRepLib
62     is virtual;
63     
64     
65     HasDescendants(me; F: Face from TopoDS)
66         ---Purpose: Returns True if the Face generates new topology.
67         ---Level: Public
68     returns Boolean from Standard
69     is virtual;
70
71
72     DescendantFaces(me: in out; F: Face from TopoDS)
73         ---Purpose: returns the list of generated Faces.
74         ---C++:     return const &
75         ---Level: Public
76     returns ListOfShape from TopTools
77     is virtual;
78     
79     
80     NbSurfaces(me)
81         ---Purpose: returns the number of surfaces
82         --          after the shape creation.
83         ---Level: Public
84     returns Integer from Standard
85     is virtual;
86
87
88     NewFaces(me: in out; I: Integer from Standard) 
89         ---Purpose: Return the faces created for surface I.
90         ---C++:     return const &
91         ---Level: Public
92     returns ListOfShape from TopTools
93     is virtual;
94
95
96     FacesFromEdges(me: in out; E: Edge from TopoDS)
97         ---Purpose: returns a list of the created faces
98         --          from the edge <E>.
99         ---C++:     return const &
100         ---Level: Public
101     returns ListOfShape from TopTools
102     is virtual;
103
104     
105 fields
106  
107     myShape   : Shape         from TopoDS   is protected;
108     myGenFaces: ListOfShape   from TopTools is protected;
109     myNewFaces: ListOfShape   from TopTools is protected;
110     myEdgFaces: ListOfShape   from TopTools is protected;
111     
112 end MakeShape;