File indexing completed on 2025-01-18 10:05:24
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_SequenceOfPnt.hxx>
0027 #include <TColStd_SequenceOfInteger.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
0041 class TopOpeBRep_FaceEdgeIntersector
0042 {
0043 public:
0044
0045 DEFINE_STANDARD_ALLOC
0046
0047
0048 Standard_EXPORT TopOpeBRep_FaceEdgeIntersector();
0049
0050 Standard_EXPORT void Perform (const TopoDS_Shape& F, const TopoDS_Shape& E);
0051
0052 Standard_EXPORT Standard_Boolean IsEmpty();
0053
0054
0055
0056 Standard_EXPORT const TopoDS_Shape& Shape (const Standard_Integer Index) const;
0057
0058
0059
0060 Standard_EXPORT void ForceTolerance (const Standard_Real tol);
0061
0062
0063
0064
0065
0066 Standard_EXPORT Standard_Real Tolerance() const;
0067
0068 Standard_EXPORT Standard_Integer NbPoints() const;
0069
0070 Standard_EXPORT void InitPoint();
0071
0072 Standard_EXPORT Standard_Boolean MorePoint() const;
0073
0074 Standard_EXPORT void NextPoint();
0075
0076
0077 Standard_EXPORT gp_Pnt Value() const;
0078
0079
0080 Standard_EXPORT Standard_Real Parameter() const;
0081
0082
0083 Standard_EXPORT void UVPoint (gp_Pnt2d& P) const;
0084
0085
0086 Standard_EXPORT TopAbs_State State() const;
0087
0088
0089
0090 Standard_EXPORT TopOpeBRepDS_Transition Transition (const Standard_Integer Index, const TopAbs_Orientation FaceOrientation) const;
0091
0092 Standard_EXPORT Standard_Boolean IsVertex (const TopoDS_Shape& S, const gp_Pnt& P, const Standard_Real Tol, TopoDS_Vertex& V);
0093
0094 Standard_EXPORT Standard_Boolean IsVertex (const Standard_Integer I, TopoDS_Vertex& V);
0095
0096
0097 Standard_EXPORT Standard_Integer Index() const;
0098
0099
0100
0101
0102 protected:
0103
0104
0105
0106
0107
0108 private:
0109
0110
0111 Standard_EXPORT void ResetIntersection();
0112
0113
0114
0115
0116
0117
0118 Standard_EXPORT void ShapeTolerances (const TopoDS_Shape& S1, const TopoDS_Shape& S2);
0119
0120
0121
0122
0123
0124 Standard_EXPORT Standard_Real ToleranceMax (const TopoDS_Shape& S, const TopAbs_ShapeEnum T) const;
0125
0126
0127 TopoDS_Face myFace;
0128 TopoDS_Edge myEdge;
0129 Standard_Real myTol;
0130 Standard_Boolean myForceTolerance;
0131 GeomAdaptor_Curve myCurve;
0132 Standard_Boolean myIntersectionDone;
0133 IntCurveSurface_SequenceOfPnt mySequenceOfPnt;
0134 TColStd_SequenceOfInteger mySequenceOfState;
0135 Standard_Integer myPointIndex;
0136 Standard_Integer myNbPoints;
0137 TopExp_Explorer myVertexExplorer;
0138 TopoDS_Shape myNullShape;
0139 TopoDS_Vertex myNullVertex;
0140
0141
0142 };
0143
0144
0145
0146
0147
0148
0149
0150 #endif