2022-04-16 09:24:00 +02:00
|
|
|
//
|
|
|
|
// Created by maximilian on 16.04.22.
|
|
|
|
//
|
|
|
|
|
|
|
|
#ifndef PROG_GEOMETRY_H
|
|
|
|
#define PROG_GEOMETRY_H
|
|
|
|
|
|
|
|
#include <cstdint>
|
|
|
|
|
|
|
|
using Coordinate = int;
|
|
|
|
using Unit = uint64_t;
|
|
|
|
using Index = size_t;
|
|
|
|
|
|
|
|
struct Point {
|
|
|
|
Coordinate x;
|
|
|
|
Coordinate y;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Interval {
|
|
|
|
Coordinate left;
|
|
|
|
Coordinate right;
|
|
|
|
};
|
|
|
|
|
2022-04-16 11:34:29 +02:00
|
|
|
struct Rectangle {
|
|
|
|
Point bottom_left;
|
|
|
|
Point top_right;
|
|
|
|
|
|
|
|
// only for algorithm
|
|
|
|
Index i_left;
|
|
|
|
Index i_right;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct RectCoord {
|
|
|
|
Coordinate coord;
|
|
|
|
Rectangle* rect; // guaranteed to be valid at all times
|
|
|
|
bool operator<(const RectCoord &other) {
|
|
|
|
return coord < other.coord;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2022-04-16 09:24:00 +02:00
|
|
|
#endif //PROG_GEOMETRY_H
|