0024157: Parallelization of assembly part of BO
[occt.git] / src / BRepFeat / BRepFeat_Gluer.cdl
1 -- Created on: 1996-03-08
2 -- Created by: Jacques GOUSSARD
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 Gluer from BRepFeat inherits MakeShape from BRepBuilderAPI
24
25         ---Purpose: One of the most significant aspects
26         -- of BRepFeat functionality is the use of local operations as opposed
27         -- to global ones. In a global operation, you would first
28         -- construct a form of the type you wanted in your final feature, and
29         -- then remove matter so that it could fit into your initial basis object.
30         -- In a local operation, however, you specify the domain of the feature
31         -- construction with aspects of the shape on which the feature is being
32         -- created. These semantics are expressed in terms of a member
33         -- shape of the basis shape from which - or up to which - matter will be
34         -- added or removed. As a result, local operations make calculations
35         -- simpler and faster than global operations.
36         -- Glueing uses wires or edges of a face in the basis shape. These are
37         -- to become a part of the feature. They are first cut out and then
38         -- projected to a plane outside or inside the basis shape. By
39         -- rebuilding the initial shape incorporating the edges and the
40         -- faces of the tool, protrusion features can be constructed.
41
42
43 uses Shape             from TopoDS,
44      Face              from TopoDS,
45      Edge              from TopoDS,
46      ListOfShape       from TopTools,
47      
48      Gluer             from LocOpe,
49      Operation         from LocOpe,
50
51      ShapeModification from BRepBuilderAPI
52
53
54 is
55
56
57     Create
58         ---Purpose: Initializes an empty constructor
59         returns Gluer from BRepFeat;
60         ---C++: inline
61         
62
63     Create(Snew: Shape from TopoDS;
64            Sbase : Shape from TopoDS)
65         ---Purpose: Initializes the shapes to be glued, the new shape
66         -- Snew and the basis shape Sbase.
67         returns Gluer from BRepFeat;
68         ---C++: inline
69
70         
71     Init(me: in out; Snew: Shape from TopoDS;
72                      Sbase : Shape from TopoDS)
73         ---Purpose: Initializes the new shape Snew and the basis shape
74         -- Sbase for the local glueing operation.
75                 ---C++: inline
76                 is static;
77
78
79     Bind(me: in out; Fnew  : Face from TopoDS;
80                      Fbase : Face from TopoDS)
81         ---Purpose: Defines a contact between Fnew on the new shape
82         -- Snew and Fbase on the basis shape Sbase. Informs
83         -- other methods that Fnew in the new shape Snew is
84         -- connected to the face Fbase in the basis shape Sbase.
85         -- The contact faces of the glued shape must not have
86         -- parts outside the contact faces of the basis shape.
87         -- This indicates that glueing is possible.
88                 ---C++: inline
89                 is static;
90
91
92     Bind(me: in out; Enew : Edge from TopoDS;
93                      Ebase: Edge from TopoDS)
94         ---Purpose: nforms other methods that the edge Enew in the new
95         -- shape is the same as the edge Ebase in the basis
96         -- shape and is therefore attached to the basis shape. This
97         -- indicates that glueing is possible.
98                 ---C++: inline
99                 is static;
100
101
102
103     OpeType(me)
104
105         returns Operation from LocOpe
106         ---Purpose: Determine which operation type to use glueing or sliding.
107                 ---C++: inline
108                 is static;
109
110
111     BasisShape(me)
112     
113         returns Shape from TopoDS
114         ---Purpose: Returns the basis shape of the compound shape.
115         ---C++: return const&
116         ---C++: inline
117         is static;
118
119
120     GluedShape(me)
121
122         returns Shape from TopoDS
123         ---C++: return const&
124         ---C++: inline
125         --- Purpose: Returns the resulting compound shape.
126         is static;
127
128
129 -- Methods redefined from BRepBuilderAPI_MakeShape
130
131     Build(me : in out)
132         ---Purpose: This is  called by  Shape().  It does  nothing but
133         --          may be redefined.
134         ---Level: Public
135     is redefined;
136         
137
138     -----------------------------------------------------------
139     --- the following methods do nothing and must be redefined
140     --- for faces modifications and creations.
141
142     IsDeleted(me: in out; F: Shape from TopoDS) 
143         ---Purpose: returns the status of the Face after
144         --          the shape creation. 
145         ---Level: Public
146     returns Boolean from Standard
147     is redefined;
148     
149     
150     Modified(me: in out; F: Shape from TopoDS)
151         ---Purpose: returns the list of generated Faces.
152         ---C++:     return const &
153         ---Level: Public
154     returns ListOfShape from TopTools
155     is redefined;
156     
157
158 fields
159
160     myGluer: Gluer from LocOpe;
161
162 end Gluer;