1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
|
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to
// this header file considered to be the "object code" form of the original source.
#ifndef _BRepFill_Evolved_HeaderFile
#define _BRepFill_Evolved_HeaderFile
#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif
#ifndef _TopoDS_Face_HeaderFile
#include <TopoDS_Face.hxx>
#endif
#ifndef _TopoDS_Wire_HeaderFile
#include <TopoDS_Wire.hxx>
#endif
#ifndef _TopoDS_Shape_HeaderFile
#include <TopoDS_Shape.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _GeomAbs_JoinType_HeaderFile
#include <GeomAbs_JoinType.hxx>
#endif
#ifndef _BRepFill_DataMapOfShapeDataMapOfShapeListOfShape_HeaderFile
#include <BRepFill_DataMapOfShapeDataMapOfShapeListOfShape.hxx>
#endif
class Standard_ConstructionError;
class Standard_NoSuchObject;
class TopoDS_Wire;
class gp_Ax3;
class TopoDS_Face;
class TopoDS_Shape;
class TopTools_ListOfShape;
class BRepMAT2d_BisectingLocus;
class BRepMAT2d_LinkTopoBilo;
class BRepFill_DataMapOfShapeDataMapOfShapeListOfShape;
class BRepTools_Quilt;
class TopTools_DataMapOfShapeShape;
class TopLoc_Location;
class TopoDS_Edge;
class TopoDS_Vertex;
//! Constructs a evolved volume from a spine (wire or face) <br>
//! and a profile ( wire). <br>
class BRepFill_Evolved {
public:
void* operator new(size_t,void* anAddress)
{
return anAddress;
}
void* operator new(size_t size)
{
return Standard::Allocate(size);
}
void operator delete(void *anAddress)
{
if (anAddress) Standard::Free((Standard_Address&)anAddress);
}
Standard_EXPORT BRepFill_Evolved();
//! Creates an evolved shape by sweeping the <Profile> <br>
//! along the <Spine>. <AxeProf> is used to set the <br>
//! position of <Profile> along <Spine> as follow: <br>
//! l <AxeProf> glisse sur le profil avec sa <br>
//! direction colineaire a la normale au <Spine>, et sa <br>
//! <XDirection> confondue avec la tangente au <Spine>. <br>
//! <br>
Standard_EXPORT BRepFill_Evolved(const TopoDS_Wire& Spine,const TopoDS_Wire& Profile,const gp_Ax3& AxeProf,const GeomAbs_JoinType Join = GeomAbs_Arc,const Standard_Boolean Solid = Standard_False);
//! Creates an evolved shape by sweeping the <Profile> <br>
//! along the <Spine> <br>
Standard_EXPORT BRepFill_Evolved(const TopoDS_Face& Spine,const TopoDS_Wire& Profile,const gp_Ax3& AxeProf,const GeomAbs_JoinType Join = GeomAbs_Arc,const Standard_Boolean Solid = Standard_False);
//! Performs an evolved shape by sweeping the <Profile> <br>
//! along the <Spine> <br>
Standard_EXPORT void Perform(const TopoDS_Wire& Spine,const TopoDS_Wire& Profile,const gp_Ax3& AxeProf,const GeomAbs_JoinType Join = GeomAbs_Arc,const Standard_Boolean Solid = Standard_False) ;
//! Performs an evolved shape by sweeping the <Profile> <br>
//! along the <Spine> <br>
Standard_EXPORT void Perform(const TopoDS_Face& Spine,const TopoDS_Wire& Profile,const gp_Ax3& AxeProf,const GeomAbs_JoinType Join = GeomAbs_Arc,const Standard_Boolean Solid = Standard_False) ;
Standard_EXPORT Standard_Boolean IsDone() const;
//! returns the generated shape. <br>
Standard_EXPORT const TopoDS_Shape& Shape() const;
//! Returns the shapes created from a subshape <br>
//! <SpineShape> of the spine and a subshape <br>
//! <ProfShape> on the profile. <br>
//! <br>
Standard_EXPORT const TopTools_ListOfShape& GeneratedShapes(const TopoDS_Shape& SpineShape,const TopoDS_Shape& ProfShape) const;
Standard_EXPORT GeomAbs_JoinType JoinType() const;
//! Return the face Top if <Solid> is True in the constructor. <br>
Standard_EXPORT const TopoDS_Shape& Top() const;
//! Return the face Bottom if <Solid> is True in the constructor. <br>
Standard_EXPORT const TopoDS_Shape& Bottom() const;
protected:
private:
Standard_EXPORT void PrivatePerform(const TopoDS_Face& Spine,const TopoDS_Wire& Profile,const gp_Ax3& AxeProf,const GeomAbs_JoinType Join = GeomAbs_Arc,const Standard_Boolean Solid = Standard_False) ;
Standard_EXPORT void SetWork(const TopoDS_Face& Spine,const TopoDS_Wire& Profile) ;
Standard_EXPORT void ElementaryPerform(const TopoDS_Face& Spine,const TopoDS_Wire& Profile,const BRepMAT2d_BisectingLocus& Locus,BRepMAT2d_LinkTopoBilo& Link,const GeomAbs_JoinType Join = GeomAbs_Arc) ;
Standard_EXPORT void PlanarPerform(const TopoDS_Face& Spine,const TopoDS_Wire& Profile,const BRepMAT2d_BisectingLocus& Locus,BRepMAT2d_LinkTopoBilo& Link,const GeomAbs_JoinType Join = GeomAbs_Arc) ;
Standard_EXPORT void VerticalPerform(const TopoDS_Face& Spine,const TopoDS_Wire& Profile,const BRepMAT2d_BisectingLocus& Locus,BRepMAT2d_LinkTopoBilo& Link,const GeomAbs_JoinType Join = GeomAbs_Arc) ;
Standard_EXPORT BRepFill_DataMapOfShapeDataMapOfShapeListOfShape& Generated() ;
Standard_EXPORT void Add(BRepFill_Evolved& Vevo,const TopoDS_Wire& Prof,BRepTools_Quilt& Glue) ;
Standard_EXPORT TopoDS_Shape& ChangeShape() ;
Standard_EXPORT void Transfert(BRepFill_Evolved& Vevo,const TopTools_DataMapOfShapeShape& MapProf,const TopTools_DataMapOfShapeShape& MapSpine,const TopLoc_Location& LS,const TopLoc_Location& InitLS,const TopLoc_Location& InitLP) ;
//! Prepare the profil as follow <br>
//! - Project the profile in the yOz Plane <br>
//! - Cut the profile at the extrema of distance from the <br>
//! Profile to the Oz Axis. <br>
//! - building the new wires with the cutting edges. <br>
Standard_EXPORT void PrepareProfile(TopTools_ListOfShape& WorkProf,TopTools_DataMapOfShapeShape& MapProf) const;
//! Prepare the spine as follow <br>
//! - Cut the spine-Edges at the extrema of curvature and <br>
//! at the inflexion points. <br>
Standard_EXPORT void PrepareSpine(TopoDS_Face& WorkSpine,TopTools_DataMapOfShapeShape& SpineProf) const;
Standard_EXPORT void MakePipe(const TopoDS_Edge& SpineEdge,const gp_Ax3& ProfRef) ;
Standard_EXPORT void MakeRevol(const TopoDS_Edge& SpineEdge,const TopoDS_Vertex& SpineVertex,const gp_Ax3& ProfRef) ;
//! Find the location transforming the planar shape <Shape> <br>
//! in the plane xOy <br>//! if the Shape is not planar. <br>
Standard_EXPORT TopLoc_Location FindLocation(const TopoDS_Face& Face) const;
//! Apply the Location <LS> to <mySpine> and <LP> to <br>
//! <myProfil> <br>
//! in order to set the Shapes in the work space. <br>
Standard_EXPORT void TransformInitWork(const TopLoc_Location& LS,const TopLoc_Location& LP) ;
Standard_EXPORT void ContinuityOnOffsetEdge(const TopTools_ListOfShape& WorkProf) ;
Standard_EXPORT void AddTopAndBottom(BRepTools_Quilt& Glue) ;
Standard_EXPORT void MakeSolid() ;
TopoDS_Face mySpine;
TopoDS_Wire myProfile;
TopoDS_Shape myShape;
Standard_Boolean myIsDone;
Standard_Boolean mySpineType;
GeomAbs_JoinType myJoinType;
BRepFill_DataMapOfShapeDataMapOfShapeListOfShape myMap;
TopoDS_Shape myTop;
TopoDS_Shape myBottom;
};
// other Inline functions and methods (like "C++: function call" methods)
#endif
|