File indexing completed on 2026-09-21 09:18:26
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _ShapeFix_WireSegment_HeaderFile
0018 #define _ShapeFix_WireSegment_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <TopoDS_Vertex.hxx>
0025 #include <TopAbs_Orientation.hxx>
0026 #include <Standard_Integer.hxx>
0027 #include <NCollection_Sequence.hxx>
0028 #include <NCollection_HSequence.hxx>
0029 class ShapeExtend_WireData;
0030 class TopoDS_Wire;
0031 class TopoDS_Edge;
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056 class ShapeFix_WireSegment
0057 {
0058 public:
0059 DEFINE_STANDARD_ALLOC
0060
0061
0062 Standard_EXPORT ShapeFix_WireSegment();
0063
0064
0065 Standard_EXPORT ShapeFix_WireSegment(const occ::handle<ShapeExtend_WireData>& wire,
0066 const TopAbs_Orientation ori = TopAbs_EXTERNAL);
0067
0068
0069 Standard_EXPORT ShapeFix_WireSegment(const TopoDS_Wire& wire,
0070 const TopAbs_Orientation ori = TopAbs_EXTERNAL);
0071
0072
0073 Standard_EXPORT void Clear();
0074
0075
0076 Standard_EXPORT void Load(const occ::handle<ShapeExtend_WireData>& wire);
0077
0078
0079 Standard_EXPORT const occ::handle<ShapeExtend_WireData>& WireData() const;
0080
0081
0082 Standard_EXPORT void Orientation(const TopAbs_Orientation ori);
0083
0084
0085 Standard_EXPORT TopAbs_Orientation Orientation() const;
0086
0087
0088
0089 Standard_EXPORT TopoDS_Vertex FirstVertex() const;
0090
0091
0092
0093 Standard_EXPORT TopoDS_Vertex LastVertex() const;
0094
0095
0096 Standard_EXPORT bool IsClosed() const;
0097
0098
0099 Standard_EXPORT int NbEdges() const;
0100
0101
0102 Standard_EXPORT TopoDS_Edge Edge(const int i) const;
0103
0104
0105 Standard_EXPORT void SetEdge(const int i, const TopoDS_Edge& edge);
0106
0107
0108
0109
0110 Standard_EXPORT void AddEdge(const int i, const TopoDS_Edge& edge);
0111
0112
0113
0114 Standard_EXPORT void AddEdge(const int i,
0115 const TopoDS_Edge& edge,
0116 const int iumin,
0117 const int iumax,
0118 const int ivmin,
0119 const int ivmax);
0120
0121
0122 Standard_EXPORT void SetPatchIndex(const int i,
0123 const int iumin,
0124 const int iumax,
0125 const int ivmin,
0126 const int ivmax);
0127
0128 Standard_EXPORT void DefineIUMin(const int i, const int iumin);
0129
0130 Standard_EXPORT void DefineIUMax(const int i, const int iumax);
0131
0132 Standard_EXPORT void DefineIVMin(const int i, const int ivmin);
0133
0134
0135
0136
0137 Standard_EXPORT void DefineIVMax(const int i, const int ivmax);
0138
0139
0140 Standard_EXPORT void GetPatchIndex(const int i,
0141 int& iumin,
0142 int& iumax,
0143 int& ivmin,
0144 int& ivmax) const;
0145
0146
0147
0148 Standard_EXPORT bool CheckPatchIndex(const int i) const;
0149
0150 Standard_EXPORT void SetVertex(const TopoDS_Vertex& theVertex);
0151
0152 Standard_EXPORT TopoDS_Vertex GetVertex() const;
0153
0154 Standard_EXPORT bool IsVertex() const;
0155
0156 private:
0157 occ::handle<ShapeExtend_WireData> myWire;
0158 TopoDS_Vertex myVertex;
0159 TopAbs_Orientation myOrient;
0160 occ::handle<NCollection_HSequence<int>> myIUMin;
0161 occ::handle<NCollection_HSequence<int>> myIUMax;
0162 occ::handle<NCollection_HSequence<int>> myIVMin;
0163 occ::handle<NCollection_HSequence<int>> myIVMax;
0164 };
0165
0166 #endif