1 -- Created on: 1996-09-03
2 -- Created by: Jacques GOUSSARD
3 -- Copyright (c) 1996-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
6 -- This file is part of Open CASCADE Technology software library.
8 -- This library is free software; you can redistribute it and / or modify it
9 -- under the terms of the GNU Lesser General Public 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.
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
17 class MakePipe from BRepFeat inherits Form from BRepFeat
19 ---Purpose: Constructs compound shapes with pipe
20 -- features. These can be depressions or protrusions.
21 -- The semantics of pipe feature creation is based on the construction of shapes:
23 -- - up to a limiting face
24 -- - from a limiting face to a height.
25 -- The shape defining construction of the pipe feature can be either the supporting edge or
26 -- the concerned area of a face.
27 -- In case of the supporting edge, this contour
28 -- can be attached to a face of the basis shape
29 -- by binding. When the contour is bound to this
30 -- face, the information that the contour will
31 -- slide on the face becomes available to the relevant class methods.
32 -- In case of the concerned area of a face, you
33 -- could, for example, cut it out and move it to a
34 -- different height which will define the limiting
35 -- face of a protrusion or depression.
37 uses Shape from TopoDS,
41 DataMapOfShapeListOfShape from TopTools,
42 DataMapOfShapeShape from TopTools,
43 SequenceOfCurve from TColGeom,
45 StatusError from BRepFeat
47 raises ConstructionError from Standard
53 returns MakePipe from BRepFeat;
54 ---Purpose: initializes the pipe class.
58 Create(Sbase : Shape from TopoDS;
59 Pbase : Shape from TopoDS;
60 Skface : Face from TopoDS;
61 Spine : Wire from TopoDS;
62 Fuse : Integer from Standard;
63 Modify : Boolean from Standard)
65 ---Purpose : A face Pbase is selected in the
66 -- shape Sbase to serve as the basis for the
67 -- pipe. It will be defined by the wire Spine.
68 -- Fuse offers a choice between:
69 -- - removing matter with a Boolean cut using the setting 0
70 -- - adding matter with Boolean fusion using the setting 1.
71 -- The sketch face Skface serves to determine
72 -- the type of operation. If it is inside the basis
73 -- shape, a local operation such as glueing can be performed.
75 returns MakePipe from BRepFeat;
78 Init(me: in out; Sbase : Shape from TopoDS;
79 Pbase : Shape from TopoDS;
80 Skface : Face from TopoDS;
81 Spine : Wire from TopoDS;
82 Fuse : Integer from Standard;
83 Modify : Boolean from Standard)
86 ---Purpose: Initializes this algorithm for adding pipes to shapes.
87 -- A face Pbase is selected in the shape Sbase to
88 -- serve as the basis for the pipe. It will be defined by the wire Spine.
89 -- Fuse offers a choice between:
90 -- - removing matter with a Boolean cut using the setting 0
91 -- - adding matter with Boolean fusion using the setting 1.
92 -- The sketch face Skface serves to determine
93 -- the type of operation. If it is inside the basis
94 -- shape, a local operation such as glueing can be performed.
96 Add(me: in out; E: Edge from TopoDS; OnFace: Face from TopoDS)
98 ---Purpose: Indicates that the edge <E> will slide on the face
99 -- <OnFace>. Raises ConstructionError if the face does not belong to the
100 -- basis shape, or the edge to the prismed shape.
101 raises ConstructionError from Standard
111 Perform(me: in out; Until: Shape from TopoDS)
116 Perform(me: in out; From : Shape from TopoDS;
117 Until: Shape from TopoDS)
121 ---Purpose: Assigns one of the following semantics
123 -- - from a face From to a height Until.
124 -- Reconstructs the feature topologically according to the semantic option chosen.
126 Curves(me: in out; S : in out SequenceOfCurve from TColGeom);
129 BarycCurve(me: in out)
130 returns Curve from Geom;
135 -- mySbase : Shape from TopoDS;
136 myPbase : Shape from TopoDS;
137 mySkface : Face from TopoDS;
138 mySlface : DataMapOfShapeListOfShape from TopTools;
139 mySpine : Wire from TopoDS;
140 myCurves : SequenceOfCurve from TColGeom;
141 myBCurve : Curve from Geom;