File indexing completed on 2026-09-14 09:14:02
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _BRepOffset_Inter3d_HeaderFile
0018 #define _BRepOffset_Inter3d_HeaderFile
0019
0020 #include <Message_ProgressRange.hxx>
0021 #include <Standard.hxx>
0022 #include <Standard_DefineAlloc.hxx>
0023 #include <Standard_Handle.hxx>
0024
0025 #include <TopTools_ShapeMapHasher.hxx>
0026 #include <NCollection_IndexedMap.hxx>
0027 #include <TopoDS_Shape.hxx>
0028 #include <NCollection_List.hxx>
0029 #include <NCollection_DataMap.hxx>
0030 #include <TopAbs_State.hxx>
0031 #include <BRepOffset_Offset.hxx>
0032 class BRepAlgo_AsDes;
0033 class BRepAlgo_Image;
0034 class TopoDS_Face;
0035 class TopoDS_Shape;
0036 class BRepOffset_Analyse;
0037
0038
0039
0040
0041 class BRepOffset_Inter3d
0042 {
0043 public:
0044 DEFINE_STANDARD_ALLOC
0045
0046 public:
0047
0048 Standard_EXPORT BRepOffset_Inter3d(const occ::handle<BRepAlgo_AsDes>& AsDes,
0049 const TopAbs_State Side,
0050 const double Tol);
0051
0052
0053 Standard_EXPORT void CompletInt(const NCollection_List<TopoDS_Shape>& SetOfFaces,
0054 const BRepAlgo_Image& InitOffsetFace,
0055 const Message_ProgressRange& theRange);
0056
0057
0058 Standard_EXPORT void FaceInter(const TopoDS_Face& F1,
0059 const TopoDS_Face& F2,
0060 const BRepAlgo_Image& InitOffsetFace);
0061
0062
0063 Standard_EXPORT void ConnexIntByArc(const NCollection_List<TopoDS_Shape>& SetOfFaces,
0064 const TopoDS_Shape& ShapeInit,
0065 const BRepOffset_Analyse& Analyse,
0066 const BRepAlgo_Image& InitOffsetFace,
0067 const Message_ProgressRange& theRange);
0068
0069
0070
0071 Standard_EXPORT void ConnexIntByInt(
0072 const TopoDS_Shape& SI,
0073 const NCollection_DataMap<TopoDS_Shape, BRepOffset_Offset, TopTools_ShapeMapHasher>& MapSF,
0074 const BRepOffset_Analyse& A,
0075 NCollection_DataMap<TopoDS_Shape, TopoDS_Shape, TopTools_ShapeMapHasher>& MES,
0076 NCollection_DataMap<TopoDS_Shape, TopoDS_Shape, TopTools_ShapeMapHasher>& Build,
0077 NCollection_List<TopoDS_Shape>& Failed,
0078 const Message_ProgressRange& theRange,
0079 const bool bIsPlanar = false);
0080
0081
0082 Standard_EXPORT void ContextIntByInt(
0083 const NCollection_IndexedMap<TopoDS_Shape, TopTools_ShapeMapHasher>& ContextFaces,
0084 const bool ExtentContext,
0085 const NCollection_DataMap<TopoDS_Shape, BRepOffset_Offset, TopTools_ShapeMapHasher>& MapSF,
0086 const BRepOffset_Analyse& A,
0087 NCollection_DataMap<TopoDS_Shape, TopoDS_Shape, TopTools_ShapeMapHasher>& MES,
0088 NCollection_DataMap<TopoDS_Shape, TopoDS_Shape, TopTools_ShapeMapHasher>& Build,
0089 NCollection_List<TopoDS_Shape>& Failed,
0090 const Message_ProgressRange& theRange,
0091 const bool bIsPlanar = false);
0092
0093
0094 Standard_EXPORT void ContextIntByArc(
0095 const NCollection_IndexedMap<TopoDS_Shape, TopTools_ShapeMapHasher>& ContextFaces,
0096 const bool ExtentContext,
0097 const BRepOffset_Analyse& Analyse,
0098 const BRepAlgo_Image& InitOffsetFace,
0099 BRepAlgo_Image& InitOffsetEdge,
0100 const Message_ProgressRange& theRange);
0101
0102
0103 Standard_EXPORT void SetDone(const TopoDS_Face& F1, const TopoDS_Face& F2);
0104
0105
0106 Standard_EXPORT bool IsDone(const TopoDS_Face& F1, const TopoDS_Face& F2) const;
0107
0108
0109 NCollection_IndexedMap<TopoDS_Shape, TopTools_ShapeMapHasher>& TouchedFaces()
0110 {
0111 return myTouched;
0112 };
0113
0114
0115 occ::handle<BRepAlgo_AsDes> AsDes() const { return myAsDes; }
0116
0117
0118 NCollection_IndexedMap<TopoDS_Shape, TopTools_ShapeMapHasher>& NewEdges() { return myNewEdges; }
0119
0120 private:
0121
0122 Standard_EXPORT void Store(const TopoDS_Face& F1,
0123 const TopoDS_Face& F2,
0124 const NCollection_List<TopoDS_Shape>& LInt1,
0125 const NCollection_List<TopoDS_Shape>& LInt2);
0126
0127 private:
0128 occ::handle<BRepAlgo_AsDes> myAsDes;
0129 NCollection_IndexedMap<TopoDS_Shape, TopTools_ShapeMapHasher> myTouched;
0130 NCollection_DataMap<TopoDS_Shape, NCollection_List<TopoDS_Shape>, TopTools_ShapeMapHasher> myDone;
0131 NCollection_IndexedMap<TopoDS_Shape, TopTools_ShapeMapHasher> myNewEdges;
0132 TopAbs_State mySide;
0133 double myTol;
0134 };
0135 #endif