From 53c8a1266866f0e13c2a759ebe3b9f4aaed60c47 Mon Sep 17 00:00:00 2001 From: laurence <laurence> Date: Fri, 19 Jul 2013 15:48:33 +0100 Subject: [PATCH] ENH: Pair: Add extra comparison operators. Make member functions non-member --- src/OpenFOAM/primitives/Pair/Pair.H | 85 ++++++++++++------- .../meshRefinement/meshRefinementBaffles.C | 2 +- 2 files changed, 56 insertions(+), 31 deletions(-) diff --git a/src/OpenFOAM/primitives/Pair/Pair.H b/src/OpenFOAM/primitives/Pair/Pair.H index 12c16fc6c3f..6715bffd7e5 100644 --- a/src/OpenFOAM/primitives/Pair/Pair.H +++ b/src/OpenFOAM/primitives/Pair/Pair.H @@ -108,12 +108,6 @@ public: return this->operator[](1); } - //- Return reverse pair - inline Pair<Type> reversePair() const - { - return Pair<Type>(second(), first()); - } - //- Return other inline const Type& other(const Type& a) const { @@ -147,11 +141,11 @@ public: // - -1: same pair, but reversed order static inline int compare(const Pair<Type>& a, const Pair<Type>& b) { - if (a[0] == b[0] && a[1] == b[1]) + if (a == b) { return 1; } - else if (a[0] == b[1] && a[1] == b[0]) + else if (a == reverse(b)) { return -1; } @@ -160,33 +154,64 @@ public: return 0; } } +}; - // Friend Operators +template<class Type> +Pair<Type> reverse(const Pair<Type>& p) +{ + return Pair<Type>(p.second(), p.first()); +} - friend bool operator==(const Pair<Type>& a, const Pair<Type>& b) - { - return (a.first() == b.first() && a.second() == b.second()); - } - friend bool operator!=(const Pair<Type>& a, const Pair<Type>& b) - { - return !(a == b); - } +template<class Type> +bool operator==(const Pair<Type>& a, const Pair<Type>& b) +{ + return (a.first() == b.first() && a.second() == b.second()); +} - friend bool operator<(const Pair<Type>& a, const Pair<Type>& b) - { - return - ( - a.first() < b.first() - || - ( - !(b.first() < a.first()) - && a.second() < b.second() - ) - ); - } -}; + +template<class Type> +bool operator!=(const Pair<Type>& a, const Pair<Type>& b) +{ + return !(a == b); +} + + +template<class Type> +bool operator<(const Pair<Type>& a, const Pair<Type>& b) +{ + return + ( + a.first() < b.first() + || + ( + !(b.first() < a.first()) + && a.second() < b.second() + ) + ); +} + + +template<class Type> +bool operator<=(const Pair<Type>& a, const Pair<Type>& b) +{ + return !(b < a); +} + + +template<class Type> +bool operator>(const Pair<Type>& a, const Pair<Type>& b) +{ + return (b < a); +} + + +template<class Type> +bool operator>=(const Pair<Type>& a, const Pair<Type>& b) +{ + return !(a < b); +} // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C index 6b9d1074c55..16528d3ea78 100644 --- a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C +++ b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C @@ -450,7 +450,7 @@ Foam::Map<Foam::labelPair> Foam::meshRefinement::getZoneBafflePatches labelPair patches = zPatches; if (fZone.flipMap()[i]) { - patches = patches.reversePair(); + patches = reverse(patches); } if (!bafflePatch.insert(faceI, patches)) -- GitLab