// Copyright 2023 Google LLC // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. #ifndef Point_DEFINED #define Point_DEFINED #include namespace bentleyottmann { struct Point { int32_t x; int32_t y; // Relation for ordering events. friend bool operator<(const Point& p0, const Point& p1); friend bool operator>(const Point& p0, const Point& p1); friend bool operator>=(const Point& p0, const Point& p1); friend bool operator<=(const Point& p0, const Point& p1); // Equality friend bool operator==(const Point& p0, const Point& p1); friend bool operator!=(const Point& p0, const Point& p1); // Extremes static Point Smallest(); static Point Largest(); static bool DifferenceTooBig(Point p0, Point p1); // Terms friend Point operator+(const Point& p0, const Point& p1) { return {p0.x + p1.x, p0.y + p1.y}; } friend Point operator-(const Point& p0, const Point& p1) { return {p0.x - p1.x, p0.y - p1.y}; } }; } // namespace bentleyottmann #endif // Point_DEFINED