0023367: New functionality restoring the middle path of pipe-like shape
[occt.git] / src / BRepOffsetAPI / BRepOffsetAPI_MakeEvolved.cdl
CommitLineData
b311480e 1-- Created on: 1995-09-18
2-- Created by: Bruno DUMORTIER
3-- Copyright (c) 1995-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
7fd59977 21
22
23class MakeEvolved from BRepOffsetAPI inherits MakeShape from BRepBuilderAPI
24
25 ---Purpose: Describes functions to build evolved shapes.
26 -- An evolved shape is built from a planar spine (face or
27 -- wire) and a profile (wire). The evolved shape is the
28 -- unlooped sweep (pipe) of the profile along the spine.
29 -- Self-intersections are removed.
30 -- A MakeEvolved object provides a framework for:
31 -- - defining the construction of an evolved shape,
32 -- - implementing the construction algorithm, and
33 -- - consulting the result.
34 -- Computes an Evolved by
35 -- 1 - sweeping a profil along a spine.
36 -- 2 - removing the self-intersections.
37 --
38 -- The profile is defined in a Referential R. The position of
39 -- the profile at the current point of the spine is given by
40 -- confusing R and the local referential given by ( D0, D1
41 -- and the normal of the Spine)
42 --
43 -- If the Boolean <AxeProf> is true, R is O,X,Y,Z
44 -- else R is defined as the local refential at the nearest
45 -- point of the profil to the spine.
46 --
47 -- if <Solid> is TRUE the Shape result is completed to be a
48 -- solid or a compound of solids.
49
50
51
52uses
53 Evolved from BRepFill,
54 ListOfShape from TopTools,
55 Shape from TopoDS,
56 Face from TopoDS,
57 Wire from TopoDS,
58 JoinType from GeomAbs
59
60is
61 Create returns MakeEvolved from BRepOffsetAPI;
62
63 Create( Spine : Wire from TopoDS;
64 Profil : Wire from TopoDS;
65 Join : JoinType from GeomAbs = GeomAbs_Arc;
66 AxeProf : Boolean from Standard = Standard_True;
67 Solid : Boolean from Standard = Standard_False;
68 ProfOnSpine: Boolean from Standard = Standard_False;
69 Tol : Real from Standard = 0.0000001)
70 ---Purpose:
71 ---Level: Public
72 returns MakeEvolved from BRepOffsetAPI;
73
74 Create( Spine : Face from TopoDS;
75 Profil : Wire from TopoDS;
76 Join : JoinType from GeomAbs = GeomAbs_Arc;
77 AxeProf : Boolean from Standard = Standard_True;
78 Solid : Boolean from Standard = Standard_False;
79 ProfOnSpine: Boolean from Standard = Standard_False;
80 Tol : Real from Standard = 0.0000001)
81 ---Purpose: These constructors construct an evolved shape by sweeping the profile
82 -- Profile along the spine Spine.
83 -- The profile is defined in a coordinate system R.
84 -- The coordinate system is determined by AxeProf:
85 -- - if AxeProf is true, R is the global coordinate system,
86 -- - if AxeProf is false, R is computed so that:
87 -- - its origin is given by the point on the spine which is
88 -- closest to the profile,
89 -- - its "X Axis" is given by the tangent to the spine at this point, and
90 -- - its "Z Axis" is the normal to the plane which contains the spine.
91 -- The position of the profile at the current point of the
92 -- spine is given by making R coincident with the local
93 -- coordinate system given by the current point, the
94 -- tangent vector and the normal to the spine.
95 -- Join defines the type of pipe generated by the salient
96 -- vertices of the spine. The default type is GeomAbs_Arc
97 -- where the vertices generate revolved pipes about the
98 -- axis passing along the vertex and the normal to the
99 -- plane of the spine. At present, this is the only
100 -- construction type implemented.
101 returns MakeEvolved from BRepOffsetAPI;
102
103 Evolved(me) returns Evolved from BRepFill
104 ---C++: return const &
105 ---Level: Advanced
106 is static;
107
108 Build(me : in out)
109 is redefined;
110 ---Purpose: Builds the resulting shape (redefined from MakeShape).
111 ---Level: Public
112
113 GeneratedShapes (me ;
114 SpineShape : Shape from TopoDS;
115 ProfShape : Shape from TopoDS)
116 ---Purpose: Returns the shapes created from a subshape
117 -- <SpineShape> of the spine and a subshape
118 -- <ProfShape> on the profile.
119 ---C++ : return const &
120 returns ListOfShape from TopTools
121 is static;
122
123 Top (me) returns Shape from TopoDS
124 ---Purpose: Return the face Top if <Solid> is True in the constructor.
125 ---C++ : return const &
126 is static;
127
128 Bottom (me) returns Shape from TopoDS
129 ---Purpose: Return the face Bottom if <Solid> is True in the constructor.
130 ---C++ : return const &
131 is static;
132
133fields
134 myEvolved : Evolved from BRepFill;
135
136end MakeEvolved;