diff options
Diffstat (limited to 'src/search-bbox.hpp')
-rw-r--r-- | src/search-bbox.hpp | 25 |
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 |