Warning, file /include/opencascade/StepToTopoDS_PointPair.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 _StepToTopoDS_PointPair_HeaderFile
0018 #define _StepToTopoDS_PointPair_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 class StepGeom_CartesianPoint;
0025
0026
0027 class StepToTopoDS_PointPair
0028 {
0029 public:
0030 DEFINE_STANDARD_ALLOC
0031
0032 Standard_EXPORT StepToTopoDS_PointPair(const occ::handle<StepGeom_CartesianPoint>& P1,
0033 const occ::handle<StepGeom_CartesianPoint>& P2);
0034
0035 const occ::handle<StepGeom_CartesianPoint>& GetPoint1() const { return myP1; }
0036
0037 const occ::handle<StepGeom_CartesianPoint>& GetPoint2() const { return myP2; }
0038
0039 bool operator==(const StepToTopoDS_PointPair& thePointPair) const
0040 {
0041 return (((myP1 == thePointPair.myP1) && (myP2 == thePointPair.myP2))
0042 || ((myP1 == thePointPair.myP2) && (myP2 == thePointPair.myP1)));
0043 }
0044
0045 private:
0046 occ::handle<StepGeom_CartesianPoint> myP1;
0047 occ::handle<StepGeom_CartesianPoint> myP2;
0048 };
0049
0050 namespace std
0051 {
0052 template <>
0053 struct hash<StepToTopoDS_PointPair>
0054 {
0055 size_t operator()(const StepToTopoDS_PointPair& thePointPair) const noexcept
0056 {
0057
0058 size_t aCombination[2];
0059 aCombination[0] = std::hash<occ::handle<StepGeom_CartesianPoint>>{}(thePointPair.GetPoint1());
0060 aCombination[1] = std::hash<occ::handle<StepGeom_CartesianPoint>>{}(thePointPair.GetPoint2());
0061 if (aCombination[0] > aCombination[1])
0062 {
0063 std::swap(aCombination[0], aCombination[1]);
0064 }
0065 return opencascade::hashBytes(aCombination, sizeof(aCombination));
0066 }
0067 };
0068 }
0069
0070 #endif