1 -- Created on: 1995-06-13
2 -- Created by: Jacques GOUSSARD
3 -- Copyright (c) 1995-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
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.
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.
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.
25 ---Purpose: BRepFeat is necessary for the
26 -- creation and manipulation of both form and mechanical features in a
27 -- Boundary Representation framework. Form features can be depressions or
28 -- protrusions and include the following types:
34 -- Depending on whether you wish to make a depression or a protrusion,
35 -- you can choose your operation type between the following:
36 -- - removing matter (a Boolean cut: Fuse setting 0)
37 -- - adding matter (Boolean fusion: Fuse setting 1)
38 -- The semantics of form feature creation is based on the
39 -- construction of shapes:
40 -- - for a certain length in a certain direction
41 -- - up to a limiting face
42 -- - from a limiting face at a height
43 -- - above and/or below a plane
44 -- The shape defining the construction of a feature can be either a
45 -- supporting edge or a concerned area of a face.
46 -- In case of supporting edge, this contour can be attached to a face
47 -- of the basis shape by binding. When the contour is bound to this face,
48 -- the information that the contour will slide on the face becomes
49 -- available to the relevant class methods. In case of the concerned
50 -- area of a face, you could, for example, cut it out and move it at
51 -- a different height, which will define the limiting face of a
52 -- protrusion or depression. Topological definition with local
53 -- operations of this sort makes calculations simpler and faster
54 -- than a global operation. The latter would entail a second phase of
55 -- removing unwanted matter to get the same result.
56 -- Mechanical features include ribs - protrusions - and grooves (or
57 -- slots) - depressions along planar (linear) surfaces or revolution surfaces.
58 -- The semantics of mechanical features is based on giving
59 -- thickness to a contour. This thickness can either be unilateral
60 -- - on one side of the contour - or bilateral - on both sides. As in
61 -- the semantics of form features, the thickness is defined by
62 -- construction of shapes in specific contexts.
63 -- However, in case of mechanical features, development contexts
64 -- differ. Here they include extrusion:
65 -- - to a limiting face of the basis shape
66 -- - to or from a limiting plane
82 --modified by NIZNHY-PKV Thu Mar 21 18:31:59 2002 f
89 --modified by NIZNHY-PKV Thu Mar 21 18:32:02 2002 t
94 enumeration StatusError is
95 ---Purpose: Discribes the error.
128 class Builder; -- inherits BOP from BOPAlgo
130 class MakeCylindricalHole; -- inherits Builder from BRepFeat;
132 class SplitShape; -- inherits MakeShape from BRepBuilderAPI;
134 deferred class Form; -- inherits MakeShape from BRepBuilderAPI;
136 deferred class RibSlot; -- inherits MakeShape from BRepBuilderAPI;
138 class MakePrism; -- inherits Form from BRepFeat
140 class MakeRevol; -- inherits Form from BRepFeat
142 class MakePipe; -- inherits Form from BRepFeat
144 class Gluer; -- inherits MakeShape from BRepBuilderAPI
148 class MakeLinearForm;
150 class MakeRevolutionForm;
152 enumeration Status is -- to be completed
160 enumeration PerfSelection is
167 ---Purpose: To declare the type of selection semantics for local operation Perform methods
169 -- - SelectionFU - selection of a face up to which a
170 -- local operation will be performed
171 -- - SelectionU - selection of a point up to which a
172 -- local operation will be performed
173 -- - SelectionSh - selection of a shape on which a
174 -- local operation will be performed
175 -- - SelectionShU - selection of a shape up to which a
176 -- local operation will be performed.
180 SampleEdges(S : Shape from TopoDS;
181 Pt: in out SequenceOfPnt from TColgp);
185 Barycenter(S : Shape from TopoDS;
186 Pt: in out Pnt from gp);
188 ParametricBarycenter(S : Shape from TopoDS;
191 returns Real from Standard;
193 ParametricMinMax(S : Shape from TopoDS;
195 prmin : out Real from Standard;
196 prmax : out Real from Standard;
197 prbmin: out Real from Standard;
198 prbmax: out Real from Standard;
199 flag : out Boolean from Standard;
200 Ori : Boolean from Standard = Standard_False);
201 ---Purpose: Ori = True taking account the orientation
203 IsInside(F1 : Face from TopoDS;
204 F2 : Face from TopoDS)
206 returns Boolean from Standard;
208 IsInOut (FC : FClass2d from BRepTopAdaptor;
209 AC : Curve from Geom2dAdaptor)
212 returns Boolean from Standard;
214 -- TangSli(E : Edge from TopoDS;
215 -- F : Shape from TopoDS)
217 -- returns Boolean from Standard;
220 FaceUntil (S : Shape from TopoDS;
221 F : in out Face from TopoDS);
224 Tool (SRef : Shape from TopoDS;
225 Fac : Face from TopoDS;
226 Orf : Orientation from TopAbs)
228 returns Solid from TopoDS;
230 Print(SE : StatusError from BRepFeat; S : in out OStream) returns OStream;
231 ---Purpose: Prints the Error description of the State <St> as a String on
232 -- the Stream <S> and returns <S>.