diff --git a/MathLib/Point3d.cpp b/MathLib/Point3d.cpp index dd2b543e505c7a25120acf1905a5d1a4b9bdc086..7d929ef1765bf99b61ae61f39210c76965375945 100644 --- a/MathLib/Point3d.cpp +++ b/MathLib/Point3d.cpp @@ -15,6 +15,36 @@ #include "Point3d.h" +bool operator< (const MathLib::Point3d& p0, const MathLib::Point3d& p1) +{ + if (p0[0] > p1[0]) { + return false; + } else { + if (p0[0] < p1[0]) { + return true; + } + } + // => p0[0] == p1[0] + + if (p0[1] > p1[1]) { + return false; + } else { + if (p0[1] < p1[1]) { + return true; + } + } + // => p0[1] == p1[1] + + if (p0[2] > p1[2]) { + return false; + } else { + if (p0[2] < p1[2]) { + return true; + } + return false; // p0 == p1 + } +} + bool operator<= (const MathLib::Point3d& p0, const MathLib::Point3d& p1) { if (p0[0] > p1[0]) { diff --git a/MathLib/Point3d.h b/MathLib/Point3d.h index 51d5e67ca8c00eca62d28c8dd2ff012e4f6635be..75368621aa822dd8c9df062d82378b795938e4e7 100644 --- a/MathLib/Point3d.h +++ b/MathLib/Point3d.h @@ -23,6 +23,8 @@ namespace MathLib typedef MathLib::TemplatePoint<double,3> Point3d; } // end namespace MathLib +bool operator< (MathLib::Point3d const & p0, MathLib::Point3d const & p1); + /** * lexicographic comparison of points */