Warning, file /include/opencascade/BRepOffset_SimpleOffset.hxx was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #ifndef _BRepOffset_SimpleOffset_HeaderFile
0017 #define _BRepOffset_SimpleOffset_HeaderFile
0018
0019 #include <BRepTools_Modification.hxx>
0020 #include <Geom2d_Curve.hxx>
0021 #include <GeomAbs_Shape.hxx>
0022 #include <NCollection_DataMap.hxx>
0023 #include <Standard_Macro.hxx>
0024 #include <Standard_Real.hxx>
0025 #include <Standard_Type.hxx>
0026 #include <TopoDS_Edge.hxx>
0027 #include <TopoDS_Face.hxx>
0028 #include <TopoDS_Vertex.hxx>
0029 #include <TopoDS_Shape.hxx>
0030 #include <NCollection_List.hxx>
0031 #include <TopTools_ShapeMapHasher.hxx>
0032 #include <NCollection_IndexedDataMap.hxx>
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044 class BRepOffset_SimpleOffset : public BRepTools_Modification
0045 {
0046 public:
0047 DEFINE_STANDARD_RTTI_INLINE(BRepOffset_SimpleOffset, BRepTools_Modification)
0048
0049
0050
0051
0052
0053 Standard_EXPORT BRepOffset_SimpleOffset(const TopoDS_Shape& theInputShape,
0054 const double theOffsetValue,
0055 const double theTolerance);
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068 Standard_EXPORT bool NewSurface(const TopoDS_Face& F,
0069 occ::handle<Geom_Surface>& S,
0070 TopLoc_Location& L,
0071 double& Tol,
0072 bool& RevWires,
0073 bool& RevFace) override;
0074
0075
0076
0077
0078
0079
0080
0081 Standard_EXPORT bool NewCurve(const TopoDS_Edge& E,
0082 occ::handle<Geom_Curve>& C,
0083 TopLoc_Location& L,
0084 double& Tol) override;
0085
0086
0087
0088
0089
0090
0091 Standard_EXPORT bool NewPoint(const TopoDS_Vertex& V, gp_Pnt& P, double& Tol) override;
0092
0093
0094
0095
0096
0097
0098
0099 Standard_EXPORT bool NewCurve2d(const TopoDS_Edge& E,
0100 const TopoDS_Face& F,
0101 const TopoDS_Edge& NewE,
0102 const TopoDS_Face& NewF,
0103 occ::handle<Geom2d_Curve>& C,
0104 double& Tol) override;
0105
0106
0107
0108
0109
0110
0111 Standard_EXPORT bool NewParameter(const TopoDS_Vertex& V,
0112 const TopoDS_Edge& E,
0113 double& P,
0114 double& Tol) override;
0115
0116
0117
0118
0119
0120
0121
0122 Standard_EXPORT GeomAbs_Shape Continuity(const TopoDS_Edge& E,
0123 const TopoDS_Face& F1,
0124 const TopoDS_Face& F2,
0125 const TopoDS_Edge& NewE,
0126 const TopoDS_Face& NewF1,
0127 const TopoDS_Face& NewF2) override;
0128
0129 private:
0130
0131 void FillFaceData(const TopoDS_Face& theFace);
0132
0133
0134 void FillEdgeData(const TopoDS_Edge& theEdge,
0135 const NCollection_IndexedDataMap<TopoDS_Shape,
0136 NCollection_List<TopoDS_Shape>,
0137 TopTools_ShapeMapHasher>& theEdgeFaceMap,
0138 const int theIdx);
0139
0140
0141 void FillVertexData(const TopoDS_Vertex& theVertex,
0142 const NCollection_IndexedDataMap<TopoDS_Shape,
0143 NCollection_List<TopoDS_Shape>,
0144 TopTools_ShapeMapHasher>& theVertexEdgeMap,
0145 const int theIdx);
0146
0147 struct NewFaceData
0148 {
0149 occ::handle<Geom_Surface> myOffsetS;
0150 TopLoc_Location myL;
0151 double myTol;
0152 bool myRevWires;
0153 bool myRevFace;
0154 };
0155
0156 struct NewEdgeData
0157 {
0158 occ::handle<Geom_Curve> myOffsetC;
0159 TopLoc_Location myL;
0160 double myTol;
0161 };
0162
0163 struct NewVertexData
0164 {
0165 gp_Pnt myP;
0166 double myTol;
0167 };
0168
0169
0170 void FillOffsetData(const TopoDS_Shape& theInputShape);
0171
0172
0173 void operator=(const BRepOffset_SimpleOffset&) = delete;
0174 BRepOffset_SimpleOffset(const BRepOffset_SimpleOffset&) = delete;
0175
0176
0177 NCollection_DataMap<TopoDS_Face, NewFaceData> myFaceInfo;
0178
0179
0180 NCollection_DataMap<TopoDS_Edge, NewEdgeData> myEdgeInfo;
0181
0182
0183 NCollection_DataMap<TopoDS_Vertex, NewVertexData> myVertexInfo;
0184
0185
0186 double myOffsetValue;
0187
0188
0189 double myTolerance;
0190 };
0191
0192 #endif