0024830: Remove redundant keyword 'mutable' in CDL declarations
[occt.git] / src / TNaming / TNaming_Builder.cdl
1 -- Created on: 1996-12-16
2 -- Created by: Remi Lequette
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 Builder from TNaming  
18
19         ---Purpose: A tool to create and maintain topological attributes. 
20         -- Constructor creates an empty
21         -- TNaming_NamedShape attribute at the given
22         -- label. It allows adding "old shape" and "new
23         -- shape" pairs with the specified evolution to this
24         -- named shape. One evolution type per one
25         -- builder must be used.
26         
27 uses
28     Shape                        from TopoDS,
29     Label                        from TDF,
30     Data                         from TDF, 
31     NamedShape                   from TNaming,  
32     UsedShapes                   from TNaming
33     
34 raises
35     ConstructionError            from Standard
36 is
37
38         Create (aLabel : Label from TDF) returns Builder from TNaming;
39             ---Purpose:  Create an   Builder.   
40             --  Warning:  Before Addition copies the current Value, and clear 
41         
42
43         ---Category: To Load Shape Evolution
44         --           =======================
45       
46         Generated(me : in out; newShape : Shape from TopoDS);
47             ---Purpose:  Records the shape newShape which was
48             -- generated during a topological construction.
49             --  As an example, consider the case of a face
50             --  generated in construction of a box.
51             
52         Generated(me : in out; oldShape, newShape : Shape from TopoDS);
53             ---Purpose: Records the shape newShape which was
54             --  generated from the shape oldShape during a topological construction.
55             -- As an example, consider the case of a face
56             -- generated from an edge in construction of a prism.
57     
58
59         ---Category: Load Modifications.
60
61         Delete(me : in out; oldShape : Shape from TopoDS);
62             ---Purpose:  Records the shape oldShape which was deleted from the current label.
63             -- As an example, consider the case of a face removed by a Boolean operation.
64             
65         Modify(me : in out; oldShape, newShape : Shape from TopoDS);
66             ---Purpose:  Records the shape newShape which is a
67             -- modification of the shape oldShape.
68             -- As an example, consider the case of a face split
69             --  or merged in a Boolean operation.
70             --          
71         
72         ---Category: Load Selection.
73         Select (me : in out; aShape, inShape : Shape from TopoDS);
74             ---Purpose:   Add a  Shape to the current label ,  This Shape is
75             --          unmodified.  Used for example  to define a set
76             --          of shapes under a label.
77                               
78
79         ---Category: Querying
80
81         NamedShape(me) returns NamedShape from TNaming;
82             ---Purpose: Returns the NamedShape which has been built or is under construction.  
83
84 fields
85
86     myShapes: UsedShapes from TNaming; 
87     myAtt   : NamedShape from TNaming;
88 end Builder;