summaryrefslogtreecommitdiffhomepage
path: root/src/hole-cut.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/hole-cut.hpp')
-rw-r--r--src/hole-cut.hpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/hole-cut.hpp b/src/hole-cut.hpp
new file mode 100644
index 00000000..52eeaf71
--- /dev/null
+++ b/src/hole-cut.hpp
@@ -0,0 +1,22 @@
+#pragma once
+#include <mg/Vector2.h>
+#include <Magnum/DimensionTraits.h>
+
+namespace floormat {
+
+template<typename T>
+struct CutResult
+{
+ using Vec2 = VectorTypeFor<2, T>;
+ struct bbox { Vec2 position; Vector2ub bbox_size; };
+ struct rect { Vec2 min, max; };
+
+ static CutResult cut(bbox input, bbox hole);
+ static CutResult cut(Vec2 r0, Vec2 r1, Vec2 h0, Vec2 h1);
+
+ std::array<rect, 8> array;
+ uint8_t size = 0;
+ bool found = false;
+};
+
+} // namespace floormat