File indexing completed on 2026-09-22 08:58:34
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _LocOpe_WiresOnShape_HeaderFile
0018 #define _LocOpe_WiresOnShape_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_Type.hxx>
0022
0023 #include <TopoDS_Shape.hxx>
0024 #include <TopTools_ShapeMapHasher.hxx>
0025 #include <NCollection_IndexedDataMap.hxx>
0026 #include <NCollection_Map.hxx>
0027 #include <NCollection_DataMap.hxx>
0028 #include <Standard_Integer.hxx>
0029 #include <Standard_Transient.hxx>
0030 #include <NCollection_Sequence.hxx>
0031
0032 class TopoDS_Wire;
0033 class TopoDS_Face;
0034 class TopoDS_Compound;
0035 class TopoDS_Edge;
0036 class TopoDS_Vertex;
0037
0038 class LocOpe_WiresOnShape : public Standard_Transient
0039 {
0040
0041 public:
0042 Standard_EXPORT LocOpe_WiresOnShape(const TopoDS_Shape& S);
0043
0044 Standard_EXPORT void Init(const TopoDS_Shape& S);
0045
0046
0047
0048
0049 Standard_EXPORT bool Add(const NCollection_Sequence<TopoDS_Shape>& theEdges);
0050
0051
0052
0053 void SetCheckInterior(const bool ToCheckInterior);
0054
0055 Standard_EXPORT void Bind(const TopoDS_Wire& W, const TopoDS_Face& F);
0056
0057 Standard_EXPORT void Bind(const TopoDS_Compound& Comp, const TopoDS_Face& F);
0058
0059 Standard_EXPORT void Bind(const TopoDS_Edge& E, const TopoDS_Face& F);
0060
0061 Standard_EXPORT void Bind(const TopoDS_Edge& EfromW, const TopoDS_Edge& EonFace);
0062
0063 Standard_EXPORT void BindAll();
0064
0065 bool IsDone() const;
0066
0067 Standard_EXPORT void InitEdgeIterator();
0068
0069 Standard_EXPORT bool MoreEdge();
0070
0071 Standard_EXPORT TopoDS_Edge Edge();
0072
0073
0074
0075 Standard_EXPORT TopoDS_Face OnFace();
0076
0077
0078
0079
0080 Standard_EXPORT bool OnEdge(TopoDS_Edge& E);
0081
0082 Standard_EXPORT void NextEdge();
0083
0084 Standard_EXPORT bool OnVertex(const TopoDS_Vertex& Vwire, TopoDS_Vertex& Vshape);
0085
0086
0087
0088
0089
0090
0091 Standard_EXPORT bool OnEdge(const TopoDS_Vertex& V, TopoDS_Edge& E, double& P);
0092
0093
0094
0095
0096
0097
0098 Standard_EXPORT bool OnEdge(const TopoDS_Vertex& V,
0099 const TopoDS_Edge& EdgeFrom,
0100 TopoDS_Edge& E,
0101 double& P);
0102
0103
0104 bool IsFaceWithSection(const TopoDS_Shape& aFace) const;
0105
0106 DEFINE_STANDARD_RTTIEXT(LocOpe_WiresOnShape, Standard_Transient)
0107
0108 private:
0109 TopoDS_Shape myShape;
0110 NCollection_IndexedDataMap<TopoDS_Shape, TopoDS_Shape, TopTools_ShapeMapHasher> myMapEF;
0111 NCollection_Map<TopoDS_Shape, TopTools_ShapeMapHasher> myFacesWithSection;
0112 bool myCheckInterior;
0113 NCollection_DataMap<TopoDS_Shape, TopoDS_Shape, TopTools_ShapeMapHasher> myMap;
0114 bool myDone;
0115 int myIndex;
0116 };
0117
0118 #include <LocOpe_WiresOnShape.lxx>
0119
0120 #endif