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