#ifndef SHARED_CHUNK_AABB #define SHARED_CHUNK_AABB 1 #pragma once #include "shared/types.hh" class ChunkAABB final { public: explicit ChunkAABB(void) = default; virtual ~ChunkAABB(void) = default; void set_bounds(const chunk_pos &min, const chunk_pos &max); void set_offset(const chunk_pos &base, const chunk_pos &size); const chunk_pos &get_min(void) const; const chunk_pos &get_max(void) const; bool contains(const chunk_pos &point) const; bool intersect(const ChunkAABB &other_box) const; ChunkAABB combine_with(const ChunkAABB &other_box) const; ChunkAABB multiply_with(const ChunkAABB &other_box) const; ChunkAABB push(const chunk_pos &vector) const; public: chunk_pos min; chunk_pos max; }; #endif /* SHARED_CHUNK_AABB */