File indexing completed on 2026-08-25 09:13:13
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #ifndef _BOPTools_AlgoTools2D_HeaderFile
0016 #define _BOPTools_AlgoTools2D_HeaderFile
0017
0018 #include <Standard.hxx>
0019 #include <Standard_DefineAlloc.hxx>
0020 #include <Standard_Handle.hxx>
0021
0022 #include <Standard_Boolean.hxx>
0023 #include <Standard_Real.hxx>
0024 #include <Standard_Integer.hxx>
0025 class TopoDS_Edge;
0026 class TopoDS_Face;
0027 class gp_Vec;
0028 class Geom2d_Curve;
0029 class Geom_Curve;
0030 class BRepAdaptor_Surface;
0031 class IntTools_Context;
0032
0033
0034
0035
0036 class BOPTools_AlgoTools2D
0037 {
0038 public:
0039 DEFINE_STANDARD_ALLOC
0040
0041
0042
0043
0044 Standard_EXPORT static void BuildPCurveForEdgeOnFace(
0045 const TopoDS_Edge& aE,
0046 const TopoDS_Face& aF,
0047 const Handle(IntTools_Context)& theContext = Handle(IntTools_Context)());
0048
0049
0050 Standard_EXPORT static Standard_Boolean EdgeTangent(const TopoDS_Edge& anE,
0051 const Standard_Real aT,
0052 gp_Vec& Tau);
0053
0054
0055
0056
0057
0058
0059
0060 Standard_EXPORT static void PointOnSurface(
0061 const TopoDS_Edge& aE,
0062 const TopoDS_Face& aF,
0063 const Standard_Real aT,
0064 Standard_Real& U,
0065 Standard_Real& V,
0066 const Handle(IntTools_Context)& theContext = Handle(IntTools_Context)());
0067
0068
0069
0070
0071
0072
0073 Standard_EXPORT static void CurveOnSurface(
0074 const TopoDS_Edge& aE,
0075 const TopoDS_Face& aF,
0076 Handle(Geom2d_Curve)& aC,
0077 Standard_Real& aToler,
0078 const Handle(IntTools_Context)& theContext = Handle(IntTools_Context)());
0079
0080
0081
0082
0083
0084
0085
0086 Standard_EXPORT static void CurveOnSurface(
0087 const TopoDS_Edge& aE,
0088 const TopoDS_Face& aF,
0089 Handle(Geom2d_Curve)& aC,
0090 Standard_Real& aFirst,
0091 Standard_Real& aLast,
0092 Standard_Real& aToler,
0093 const Handle(IntTools_Context)& theContext = Handle(IntTools_Context)());
0094
0095
0096
0097
0098
0099
0100 Standard_EXPORT static Standard_Boolean HasCurveOnSurface(const TopoDS_Edge& aE,
0101 const TopoDS_Face& aF,
0102 Handle(Geom2d_Curve)& aC,
0103 Standard_Real& aFirst,
0104 Standard_Real& aLast,
0105 Standard_Real& aToler);
0106
0107
0108
0109
0110 Standard_EXPORT static Standard_Boolean HasCurveOnSurface(const TopoDS_Edge& aE,
0111 const TopoDS_Face& aF);
0112
0113
0114
0115 Standard_EXPORT static void AdjustPCurveOnFace(
0116 const TopoDS_Face& theF,
0117 const Handle(Geom_Curve)& theC3D,
0118 const Handle(Geom2d_Curve)& theC2D,
0119 Handle(Geom2d_Curve)& theC2DA,
0120 const Handle(IntTools_Context)& theContext = Handle(IntTools_Context)());
0121
0122
0123
0124
0125 Standard_EXPORT static void AdjustPCurveOnFace(
0126 const TopoDS_Face& theF,
0127 const Standard_Real theFirst,
0128 const Standard_Real theLast,
0129 const Handle(Geom2d_Curve)& theC2D,
0130 Handle(Geom2d_Curve)& theC2DA,
0131 const Handle(IntTools_Context)& theContext = Handle(IntTools_Context)());
0132
0133
0134
0135 Standard_EXPORT static void AdjustPCurveOnSurf(const BRepAdaptor_Surface& aF,
0136 const Standard_Real aT1,
0137 const Standard_Real aT2,
0138 const Handle(Geom2d_Curve)& aC2D,
0139 Handle(Geom2d_Curve)& aC2DA);
0140
0141
0142 Standard_EXPORT static Standard_Real IntermediatePoint(const Standard_Real aFirst,
0143 const Standard_Real aLast);
0144
0145
0146 Standard_EXPORT static Standard_Real IntermediatePoint(const TopoDS_Edge& anE);
0147
0148
0149
0150
0151
0152
0153 Standard_EXPORT static void Make2D(
0154 const TopoDS_Edge& aE,
0155 const TopoDS_Face& aF,
0156 Handle(Geom2d_Curve)& aC,
0157 Standard_Real& aFirst,
0158 Standard_Real& aLast,
0159 Standard_Real& aToler,
0160 const Handle(IntTools_Context)& theContext = Handle(IntTools_Context)());
0161
0162
0163
0164
0165
0166 Standard_EXPORT static void MakePCurveOnFace(
0167 const TopoDS_Face& aF,
0168 const Handle(Geom_Curve)& C3D,
0169 Handle(Geom2d_Curve)& aC,
0170 Standard_Real& aToler,
0171 const Handle(IntTools_Context)& theContext = Handle(IntTools_Context)());
0172
0173
0174
0175
0176
0177
0178 Standard_EXPORT static void MakePCurveOnFace(
0179 const TopoDS_Face& aF,
0180 const Handle(Geom_Curve)& C3D,
0181 const Standard_Real aT1,
0182 const Standard_Real aT2,
0183 Handle(Geom2d_Curve)& aC,
0184 Standard_Real& aToler,
0185 const Handle(IntTools_Context)& theContext = Handle(IntTools_Context)());
0186
0187
0188
0189
0190 Standard_EXPORT static Standard_Integer AttachExistingPCurve(
0191 const TopoDS_Edge& aEold,
0192 const TopoDS_Edge& aEnew,
0193 const TopoDS_Face& aF,
0194 const Handle(IntTools_Context)& aCtx);
0195
0196
0197
0198
0199
0200
0201
0202
0203
0204
0205
0206
0207 Standard_EXPORT static void IsEdgeIsoline(const TopoDS_Edge& theE,
0208 const TopoDS_Face& theF,
0209 Standard_Boolean& isTheUIso,
0210 Standard_Boolean& isTheVIso);
0211 };
0212
0213 #endif