summaryrefslogtreecommitdiffhomepage
path: root/src/search-bbox.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/search-bbox.hpp')
-rw-r--r--src/search-bbox.hpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/search-bbox.hpp b/src/search-bbox.hpp
new file mode 100644
index 00000000..0d211daf
--- /dev/null
+++ b/src/search-bbox.hpp
@@ -0,0 +1,25 @@
+#pragma once
+#include "search.hpp"
+#include <concepts>
+#include <Magnum/Math/Vector2.h>
+#include <Magnum/DimensionTraits.h>
+
+namespace floormat::Search {
+
+template<typename T> struct bbox
+{
+ static_assert(std::is_arithmetic_v<T>);
+
+ VectorTypeFor<2, T> min, max;
+
+ constexpr bool operator==(const bbox<T>&) const = default;
+
+ template<typename U>
+ requires std::is_arithmetic_v<U>
+ explicit constexpr operator bbox<U>() const {
+ using Vec = VectorTypeFor<2, U>;
+ return bbox<U>{ Vec(min), Vec(max) };
+ }
+};
+
+} // namespace floormat::Search