X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fmath%2FSGVec4.hxx;h=f854274dd37bbae282d665665f8062897112ab48;hb=f7c6a5bfa2140c1d5ef54f3212067cd286e525f1;hp=7c714323f102ec8a0ee42c874c53a2a683461579;hpb=360d3834ca57d89c396635b613afaeb9186c3b83;p=simgear.git diff --git a/simgear/math/SGVec4.hxx b/simgear/math/SGVec4.hxx index 7c714323..f854274d 100644 --- a/simgear/math/SGVec4.hxx +++ b/simgear/math/SGVec4.hxx @@ -344,6 +344,47 @@ bool operator!=(const SGVec4& v1, const SGVec4& v2) { return ! (v1 == v2); } +/// Return true if smaller, good for putting that into a std::map +template +inline +bool +operator<(const SGVec4& v1, const SGVec4& v2) +{ + if (v1(0) < v2(0)) return true; + else if (v2(0) < v1(0)) return false; + else if (v1(1) < v2(1)) return true; + else if (v2(1) < v1(1)) return false; + else if (v1(2) < v2(2)) return true; + else if (v2(2) < v1(2)) return false; + else return (v1(3) < v2(3)); +} + +template +inline +bool +operator<=(const SGVec4& v1, const SGVec4& v2) +{ + if (v1(0) < v2(0)) return true; + else if (v2(0) < v1(0)) return false; + else if (v1(1) < v2(1)) return true; + else if (v2(1) < v1(1)) return false; + else if (v1(2) < v2(2)) return true; + else if (v2(2) < v1(2)) return false; + else return (v1(3) <= v2(3)); +} + +template +inline +bool +operator>(const SGVec4& v1, const SGVec4& v2) +{ return operator<(v2, v1); } + +template +inline +bool +operator>=(const SGVec4& v1, const SGVec4& v2) +{ return operator<=(v2, v1); } + /// Return true if equal to the relative tolerance tol template inline