diff --git a/xs/src/libslic3r/Point.cpp b/xs/src/libslic3r/Point.cpp index 465f78db8..d1ece5de5 100644 --- a/xs/src/libslic3r/Point.cpp +++ b/xs/src/libslic3r/Point.cpp @@ -438,6 +438,10 @@ Pointf3::scale(double factor) this->z *= factor; } +bool Pointf::operator==(const Pointf& rhs) const { + return Point::new_scale(*this) == Point::new_scale(rhs); +} + void Pointf3::translate(const Vectorf3 &vector) { diff --git a/xs/src/libslic3r/Point.hpp b/xs/src/libslic3r/Point.hpp index 3c0b5f299..097ea4c69 100644 --- a/xs/src/libslic3r/Point.hpp +++ b/xs/src/libslic3r/Point.hpp @@ -116,6 +116,10 @@ class Pointf static Pointf new_unscale(const Point &p) { return Pointf(unscale(p.x), unscale(p.y)); }; + + // equality operator based on the scaled coordinates + bool operator==(const Pointf& rhs) const; + std::string wkt() const; std::string dump_perl() const; void scale(double factor);