Warning, file /include/opencascade/TopOpeBRep_FacesIntersector.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
0017 #ifndef _TopOpeBRep_FacesIntersector_HeaderFile
0018 #define _TopOpeBRep_FacesIntersector_HeaderFile
0019
0020 #include <BRepAdaptor_Surface.hxx>
0021 #include <GeomAbs_SurfaceType.hxx>
0022 #include <IntPatch_Intersection.hxx>
0023 #include <TopAbs_ShapeEnum.hxx>
0024 #include <TopOpeBRep_LineInter.hxx>
0025 #include <NCollection_Array1.hxx>
0026 #include <NCollection_HArray1.hxx>
0027 #include <TopoDS_Face.hxx>
0028 #include <TopTools_ShapeMapHasher.hxx>
0029 #include <NCollection_IndexedMap.hxx>
0030
0031 class BRepTopAdaptor_TopolTool;
0032 class Bnd_Box;
0033
0034
0035 class TopOpeBRep_FacesIntersector
0036 {
0037 public:
0038 DEFINE_STANDARD_ALLOC
0039
0040 Standard_EXPORT TopOpeBRep_FacesIntersector();
0041
0042
0043 Standard_EXPORT void Perform(const TopoDS_Shape& S1, const TopoDS_Shape& S2);
0044
0045
0046 Standard_EXPORT void Perform(const TopoDS_Shape& S1,
0047 const TopoDS_Shape& S2,
0048 const Bnd_Box& B1,
0049 const Bnd_Box& B2);
0050
0051 Standard_EXPORT bool IsEmpty();
0052
0053 Standard_EXPORT bool IsDone() const;
0054
0055
0056
0057 Standard_EXPORT bool SameDomain() const;
0058
0059
0060 Standard_EXPORT const TopoDS_Shape& Face(const int Index) const;
0061
0062
0063
0064
0065 Standard_EXPORT bool SurfacesSameOriented() const;
0066
0067
0068
0069 Standard_EXPORT bool IsRestriction(const TopoDS_Shape& E) const;
0070
0071
0072 Standard_EXPORT const NCollection_IndexedMap<TopoDS_Shape, TopTools_ShapeMapHasher>&
0073 Restrictions() const;
0074
0075 Standard_EXPORT void PrepareLines();
0076
0077 Standard_EXPORT occ::handle<NCollection_HArray1<TopOpeBRep_LineInter>> Lines();
0078
0079 Standard_EXPORT int NbLines() const;
0080
0081 Standard_EXPORT void InitLine();
0082
0083 Standard_EXPORT bool MoreLine() const;
0084
0085 Standard_EXPORT void NextLine();
0086
0087 Standard_EXPORT TopOpeBRep_LineInter& CurrentLine();
0088
0089 Standard_EXPORT int CurrentLineIndex() const;
0090
0091 Standard_EXPORT TopOpeBRep_LineInter& ChangeLine(const int IL);
0092
0093
0094 Standard_EXPORT void ForceTolerances(const double tolarc, const double toltang);
0095
0096
0097
0098
0099 Standard_EXPORT void GetTolerances(double& tolarc, double& toltang) const;
0100
0101 private:
0102 Standard_EXPORT void FindLine();
0103
0104 Standard_EXPORT void ResetIntersection();
0105
0106
0107
0108
0109
0110
0111 Standard_EXPORT void ShapeTolerances(const TopoDS_Shape& S1, const TopoDS_Shape& S2);
0112
0113
0114
0115
0116
0117 Standard_EXPORT double ToleranceMax(const TopoDS_Shape& S, const TopAbs_ShapeEnum T) const;
0118
0119 IntPatch_Intersection myIntersector;
0120 bool myIntersectionDone;
0121 double myTol1;
0122 double myTol2;
0123 bool myForceTolerances;
0124 occ::handle<NCollection_HArray1<TopOpeBRep_LineInter>> myHAL;
0125 TopOpeBRep_LineInter myLine;
0126 int myLineIndex;
0127 bool myLineFound;
0128 int myLineNb;
0129 TopoDS_Face myFace1;
0130 TopoDS_Face myFace2;
0131 occ::handle<BRepAdaptor_Surface> mySurface1;
0132 occ::handle<BRepAdaptor_Surface> mySurface2;
0133 GeomAbs_SurfaceType mySurfaceType1;
0134 GeomAbs_SurfaceType mySurfaceType2;
0135 bool mySurfacesSameOriented;
0136 occ::handle<BRepTopAdaptor_TopolTool> myDomain1;
0137 occ::handle<BRepTopAdaptor_TopolTool> myDomain2;
0138 NCollection_IndexedMap<TopoDS_Shape, TopTools_ShapeMapHasher> myEdgeRestrictionMap;
0139 TopoDS_Shape myNullShape;
0140 };
0141
0142 #endif