File indexing completed on 2026-09-18 09:22:14
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _TopOpeBRep_FaceEdgeIntersector_HeaderFile
0018 #define _TopOpeBRep_FaceEdgeIntersector_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022
0023 #include <TopoDS_Face.hxx>
0024 #include <TopoDS_Edge.hxx>
0025 #include <GeomAdaptor_Curve.hxx>
0026 #include <IntCurveSurface_IntersectionPoint.hxx>
0027 #include <NCollection_Sequence.hxx>
0028 #include <Standard_Integer.hxx>
0029 #include <TopExp_Explorer.hxx>
0030 #include <TopoDS_Shape.hxx>
0031 #include <TopoDS_Vertex.hxx>
0032 #include <TopAbs_State.hxx>
0033 #include <TopAbs_Orientation.hxx>
0034 #include <TopAbs_ShapeEnum.hxx>
0035 class gp_Pnt;
0036 class gp_Pnt2d;
0037 class TopOpeBRepDS_Transition;
0038
0039
0040 class TopOpeBRep_FaceEdgeIntersector
0041 {
0042 public:
0043 DEFINE_STANDARD_ALLOC
0044
0045 Standard_EXPORT TopOpeBRep_FaceEdgeIntersector();
0046
0047 Standard_EXPORT void Perform(const TopoDS_Shape& F, const TopoDS_Shape& E);
0048
0049 Standard_EXPORT bool IsEmpty();
0050
0051
0052
0053 Standard_EXPORT const TopoDS_Shape& Shape(const int Index) const;
0054
0055
0056 Standard_EXPORT void ForceTolerance(const double tol);
0057
0058
0059
0060
0061 Standard_EXPORT double Tolerance() const;
0062
0063 Standard_EXPORT int NbPoints() const;
0064
0065 Standard_EXPORT void InitPoint();
0066
0067 Standard_EXPORT bool MorePoint() const;
0068
0069 Standard_EXPORT void NextPoint();
0070
0071
0072 Standard_EXPORT gp_Pnt Value() const;
0073
0074
0075 Standard_EXPORT double Parameter() const;
0076
0077
0078 Standard_EXPORT void UVPoint(gp_Pnt2d& P) const;
0079
0080
0081 Standard_EXPORT TopAbs_State State() const;
0082
0083
0084 Standard_EXPORT TopOpeBRepDS_Transition
0085 Transition(const int Index, const TopAbs_Orientation FaceOrientation) const;
0086
0087 Standard_EXPORT bool IsVertex(const TopoDS_Shape& S,
0088 const gp_Pnt& P,
0089 const double Tol,
0090 TopoDS_Vertex& V);
0091
0092 Standard_EXPORT bool IsVertex(const int I, TopoDS_Vertex& V);
0093
0094
0095 Standard_EXPORT int Index() const;
0096
0097 private:
0098 Standard_EXPORT void ResetIntersection();
0099
0100
0101
0102
0103
0104
0105 Standard_EXPORT void ShapeTolerances(const TopoDS_Shape& S1, const TopoDS_Shape& S2);
0106
0107
0108
0109
0110
0111 Standard_EXPORT double ToleranceMax(const TopoDS_Shape& S, const TopAbs_ShapeEnum T) const;
0112
0113 TopoDS_Face myFace;
0114 TopoDS_Edge myEdge;
0115 double myTol;
0116 bool myForceTolerance;
0117 GeomAdaptor_Curve myCurve;
0118 bool myIntersectionDone;
0119 NCollection_Sequence<IntCurveSurface_IntersectionPoint> mySequenceOfPnt;
0120 NCollection_Sequence<int> mySequenceOfState;
0121 int myPointIndex;
0122 int myNbPoints;
0123 TopExp_Explorer myVertexExplorer;
0124 TopoDS_Shape myNullShape;
0125 TopoDS_Vertex myNullVertex;
0126 };
0127
0128 #endif