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
|
// 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 _BOP_WireEdgeSet_HeaderFile
#define _BOP_WireEdgeSet_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 _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _BOP_ShapeSet_HeaderFile
#include <BOP_ShapeSet.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _TopAbs_Orientation_HeaderFile
#include <TopAbs_Orientation.hxx>
#endif
class TopoDS_Face;
class TopoDS_Shape;
class TopTools_ListOfShape;
class TopoDS_Edge;
class TopoDS_Vertex;
class gp_Pnt2d;
class gp_Vec2d;
//! The class containing data and methods <br>
//! for a set of edges and wires <br>
class BOP_WireEdgeSet : public BOP_ShapeSet {
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);
}
//! Empty constructor; <br>
Standard_EXPORT BOP_WireEdgeSet();
//! Creates a WES to build edges connected by vertices <br>
//! on face F. Edges of the WireEdgeSet must have a representation <br>
//! on surface of face F. <br>
Standard_EXPORT BOP_WireEdgeSet(const TopoDS_Face& F);
//! Initialize a WES to build edges connected by vertices <br>
//! on face F. Edges of the WireEdgeSet must have a representation <br>
//! on surface of face F. <br>
Standard_EXPORT void Initialize(const TopoDS_Face& F) ;
//! Selector <br>
Standard_EXPORT const TopoDS_Face& Face() const;
//! See in base class, please <br>
Standard_EXPORT virtual void AddShape(const TopoDS_Shape& S) ;
//! See in base class, please <br>
Standard_EXPORT virtual void AddStartElement(const TopoDS_Shape& S) ;
//! See in base class, please <br>
Standard_EXPORT virtual void AddElement(const TopoDS_Shape& S) ;
//! Internal usage <br>
Standard_EXPORT virtual void InitNeighbours(const TopoDS_Shape& E) ;
//! Build the list of neighbour edges of edge myCurrentShape <br>
//! Initialize iterator of neighbour edges to edge myCurrentShape <br>
Standard_EXPORT virtual void FindNeighbours() ;
Standard_EXPORT virtual const TopTools_ListOfShape& MakeNeighboursList(const TopoDS_Shape& E,const TopoDS_Shape& V) ;
//! Internal usage <br>
Standard_EXPORT static void IsUVISO(const TopoDS_Edge& E,const TopoDS_Face& F,Standard_Boolean& uiso,Standard_Boolean& viso) ;
//! Removes the edge aE from the WES <br>
Standard_EXPORT void RemoveEdgeFromWES(const TopoDS_Edge& aE) ;
//! Returns TRUE if the edge aE has been kept twice <br>
//! in the WES <br>
Standard_EXPORT Standard_Boolean KeptTwice(const TopoDS_Edge& aE) const;
protected:
private:
//! Indicates whether vertex V is a good connexity vertex between <br>
//! edges E1 and E2. <br>
//! i.e, returns True if V is shared by E1 and E2 and if V has different <br>
//! orientations on E1 and E2. <br>
//! If V is shared by E1 and E2, returns the orientation of V on E1 and E2 <br>
Standard_EXPORT Standard_Boolean VertexConnectsEdges(const TopoDS_Shape& V,const TopoDS_Shape& E1,const TopoDS_Shape& E2,TopAbs_Orientation& O1,TopAbs_Orientation& O2) const;
//! Internal usage <br>
Standard_EXPORT Standard_Boolean VertexConnectsEdgesClosing(const TopoDS_Shape& V,const TopoDS_Shape& E1,const TopoDS_Shape& E2) const;
//! Internal usage <br>
Standard_EXPORT Standard_Integer NbClosingShapes(const TopTools_ListOfShape& L) const;
//! Internal usage <br>
Standard_EXPORT void LocalD1(const TopoDS_Face& F,const TopoDS_Edge& E,const TopoDS_Vertex& V,gp_Pnt2d& P2,gp_Vec2d& V2) const;
//! indicates if the edge <E> is a closing edge of myFace <br>
//! Internal usage <br>
Standard_EXPORT Standard_Boolean IsClosed(const TopoDS_Shape& E) const;
//! indicates if the edge <E> is a closing edge on U of myFace <br>
//! Internal usage <br>
Standard_EXPORT Standard_Boolean IsUClosed(const TopoDS_Shape& E) const;
//! indicates if the edge <E> is a closing edge on V of myFace <br>
//! Internal usage <br>
Standard_EXPORT Standard_Boolean IsVClosed(const TopoDS_Shape& E) const;
TopoDS_Face myFace;
Standard_Integer myDEBVertexIndex;
};
// other Inline functions and methods (like "C++: function call" methods)
#endif
|