0023205: Patch for Naming improvement
[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-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 Builder from TNaming  
24
25         ---Purpose: A tool to create and maintain topological
26         -- attributes. 
27         -- Constructor creates an empty
28         -- TNaming_NamedShape attribute at the given
29         -- label. It allows adding "old shape" and "new
30         -- shape" pairs with the specified evolution to this
31         -- named shape. One evolution type per one
32         -- builder must be used.
33         
34 uses
35     Shape                        from TopoDS,
36     Label                        from TDF,
37     Data                         from TDF, 
38     NamedShape                   from TNaming,  
39     PtrNode                      from TNaming,  
40     PtrAttribute                 from TNaming,  
41     PtrDataMapOfShapePtrRefShape from TNaming
42     
43 raises
44     ConstructionError            from Standard
45 is
46
47         Create (aLabel : Label from TDF) returns Builder from TNaming;
48             ---Purpose:  Create an   Builder.   
49             --  Warning:  Before Addition copies the current Value, and clear 
50         
51
52         ---Category: To Load Shape Evolution
53         --           =======================
54       
55         Generated(me : in out; newShape : Shape from TopoDS);
56             ---Purpose:  Records the shape newShape which was
57             -- generated during a topological construction.
58             --  As an example, consider the case of a face
59             --  generated in construction of a box.
60             
61         Generated(me : in out; oldShape, newShape : Shape from TopoDS);
62             ---Purpose: Records the shape newShape which was
63             --  generated from the shape oldShape during a topological construction.
64             -- As an example, consider the case of a face
65             -- generated from an edge in construction of a prism.
66     
67
68         ---Category: Load Modifications.
69
70         Delete(me : in out; oldShape : Shape from TopoDS);
71             ---Purpose:  Records the shape oldShape which was deleted from the current label.
72             -- As an example, consider the case of a face removed by a Boolean operation.
73             
74         Modify(me : in out; oldShape, newShape : Shape from TopoDS);
75             ---Purpose:  Records the shape newShape which is a
76             -- modification of the shape oldShape.
77             -- As an example, consider the case of a face split
78             --  or merged in a Boolean operation.
79             --          
80         
81         ---Category: Load Selection.
82         Select (me : in out; aShape, inShape : Shape from TopoDS);
83             ---Purpose:   Add a  Shape to the current label ,  This Shape is
84             --          unmodified.  Used for example  to define a set
85             --          of shapes under a label.
86                               
87
88         ---Category: Querying
89
90         NamedShape(me) returns NamedShape from TNaming;
91             ---Purpose: Returns the NamedShape which has been build or is under construction.
92
93 fields
94     
95     myMap         : PtrDataMapOfShapePtrRefShape from TNaming; 
96     myAtt         : PtrAttribute                 from TNaming;
97 end Builder;