File indexing completed on 2025-01-18 10:03:20
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _ChFi2d_Builder_HeaderFile
0018 #define _ChFi2d_Builder_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022
0023 #include <ChFi2d_ConstructionError.hxx>
0024 #include <TopoDS_Face.hxx>
0025 #include <TopTools_SequenceOfShape.hxx>
0026 #include <TopTools_DataMapOfShapeShape.hxx>
0027 #include <Standard_Integer.hxx>
0028
0029 class TopoDS_Edge;
0030 class TopoDS_Vertex;
0031
0032
0033 #ifdef Status
0034 #undef Status
0035 #endif
0036
0037
0038
0039 class ChFi2d_Builder
0040 {
0041 public:
0042
0043 DEFINE_STANDARD_ALLOC
0044
0045
0046 Standard_EXPORT ChFi2d_Builder();
0047
0048
0049
0050 Standard_EXPORT ChFi2d_Builder(const TopoDS_Face& F);
0051
0052 Standard_EXPORT void Init (const TopoDS_Face& F);
0053
0054 Standard_EXPORT void Init (const TopoDS_Face& RefFace, const TopoDS_Face& ModFace);
0055
0056
0057
0058
0059
0060
0061 Standard_EXPORT TopoDS_Edge AddFillet (const TopoDS_Vertex& V, const Standard_Real Radius);
0062
0063
0064
0065
0066 Standard_EXPORT TopoDS_Edge ModifyFillet (const TopoDS_Edge& Fillet, const Standard_Real Radius);
0067
0068
0069
0070 Standard_EXPORT TopoDS_Vertex RemoveFillet (const TopoDS_Edge& Fillet);
0071
0072
0073
0074
0075
0076 Standard_EXPORT TopoDS_Edge AddChamfer (const TopoDS_Edge& E1, const TopoDS_Edge& E2, const Standard_Real D1, const Standard_Real D2);
0077
0078
0079
0080
0081
0082
0083
0084
0085 Standard_EXPORT TopoDS_Edge AddChamfer (const TopoDS_Edge& E, const TopoDS_Vertex& V, const Standard_Real D, const Standard_Real Ang);
0086
0087
0088
0089
0090
0091 Standard_EXPORT TopoDS_Edge ModifyChamfer (const TopoDS_Edge& Chamfer, const TopoDS_Edge& E1, const TopoDS_Edge& E2, const Standard_Real D1, const Standard_Real D2);
0092
0093
0094
0095
0096
0097 Standard_EXPORT TopoDS_Edge ModifyChamfer (const TopoDS_Edge& Chamfer, const TopoDS_Edge& E, const Standard_Real D, const Standard_Real Ang);
0098
0099
0100
0101
0102 Standard_EXPORT TopoDS_Vertex RemoveChamfer (const TopoDS_Edge& Chamfer);
0103
0104
0105 TopoDS_Face Result() const;
0106
0107 Standard_Boolean IsModified (const TopoDS_Edge& E) const;
0108
0109
0110 const TopTools_SequenceOfShape& FilletEdges() const;
0111
0112 Standard_Integer NbFillet() const;
0113
0114
0115 const TopTools_SequenceOfShape& ChamferEdges() const;
0116
0117 Standard_Integer NbChamfer() const;
0118
0119 Standard_Boolean HasDescendant (const TopoDS_Edge& E) const;
0120
0121
0122
0123 const TopoDS_Edge& DescendantEdge (const TopoDS_Edge& E) const;
0124
0125
0126
0127
0128 Standard_EXPORT const TopoDS_Edge& BasisEdge (const TopoDS_Edge& E) const;
0129
0130 ChFi2d_ConstructionError Status() const;
0131
0132
0133
0134
0135 protected:
0136
0137
0138
0139
0140
0141 private:
0142
0143
0144
0145
0146
0147 Standard_EXPORT void ComputeFillet (const TopoDS_Vertex& V, const TopoDS_Edge& E1, const TopoDS_Edge& E2, const Standard_Real Radius, TopoDS_Edge& TrimE1, TopoDS_Edge& TrimE2, TopoDS_Edge& Fillet);
0148
0149
0150
0151
0152
0153
0154 Standard_EXPORT void ComputeChamfer (const TopoDS_Vertex& V, const TopoDS_Edge& E1, const TopoDS_Edge& E2, const Standard_Real D1, const Standard_Real D2, TopoDS_Edge& TrimE1, TopoDS_Edge& TrimE2, TopoDS_Edge& Chamfer);
0155
0156
0157
0158
0159
0160
0161
0162 Standard_EXPORT void ComputeChamfer (const TopoDS_Vertex& V, const TopoDS_Edge& E1, const Standard_Real D, const Standard_Real Ang, const TopoDS_Edge& E2, TopoDS_Edge& TrimE1, TopoDS_Edge& TrimE2, TopoDS_Edge& Chamfer);
0163
0164
0165
0166
0167
0168
0169
0170
0171
0172
0173 Standard_EXPORT TopoDS_Edge BuildFilletEdge (const TopoDS_Vertex& V, const TopoDS_Edge& AdjEdge1, const TopoDS_Edge& AdjEdge2, const Standard_Real Radius, TopoDS_Vertex& NewExtr1, TopoDS_Vertex& NewExtr2);
0174
0175
0176
0177
0178
0179
0180 Standard_EXPORT TopoDS_Edge BuildChamferEdge (const TopoDS_Vertex& V, const TopoDS_Edge& AdjEdge1, const TopoDS_Edge& AdjEdge2, const Standard_Real D1, const Standard_Real D2, TopoDS_Vertex& NewExtr1, TopoDS_Vertex& NewExtr2);
0181
0182
0183
0184
0185
0186
0187 Standard_EXPORT TopoDS_Edge BuildChamferEdge (const TopoDS_Vertex& V, const TopoDS_Edge& AdjEdge2, const Standard_Real D, const Standard_Real Ang, const TopoDS_Edge& AdjEdge1, TopoDS_Vertex& NewExtr1, TopoDS_Vertex& NewExtr2);
0188
0189
0190
0191
0192
0193
0194 Standard_EXPORT void BuildNewWire (const TopoDS_Edge& OldE1, const TopoDS_Edge& OldE2, const TopoDS_Edge& E1, const TopoDS_Edge& Fillet, const TopoDS_Edge& E2);
0195
0196
0197 Standard_EXPORT TopoDS_Edge BuildNewEdge (const TopoDS_Edge& E1, const TopoDS_Vertex& OldExtr, const TopoDS_Vertex& NewExtr) const;
0198
0199
0200
0201
0202 Standard_EXPORT TopoDS_Edge BuildNewEdge (const TopoDS_Edge& E1, const TopoDS_Vertex& OldExtr, const TopoDS_Vertex& NewExtr, Standard_Boolean& IsDegenerated) const;
0203
0204
0205
0206
0207
0208
0209 Standard_EXPORT void UpDateHistory (const TopoDS_Edge& E1, const TopoDS_Edge& E2, const TopoDS_Edge& TrimE1, const TopoDS_Edge& TrimE2, const TopoDS_Edge& NewEdge, const Standard_Integer Id);
0210
0211
0212
0213 Standard_EXPORT void UpDateHistory (const TopoDS_Edge& E1, const TopoDS_Edge& E2, const TopoDS_Edge& TrimE1, const TopoDS_Edge& TrimE2);
0214
0215 Standard_EXPORT Standard_Boolean IsAFillet (const TopoDS_Edge& E) const;
0216
0217 Standard_EXPORT Standard_Boolean IsAChamfer (const TopoDS_Edge& E) const;
0218
0219
0220 ChFi2d_ConstructionError status;
0221 TopoDS_Face refFace;
0222 TopoDS_Face newFace;
0223 TopTools_SequenceOfShape fillets;
0224 TopTools_SequenceOfShape chamfers;
0225 TopTools_DataMapOfShapeShape history;
0226
0227
0228 };
0229
0230
0231 #include <ChFi2d_Builder.lxx>
0232
0233
0234
0235
0236
0237 #endif