sandbox
Loading...
Searching...
No Matches
sbx::math::basic_volume< Type > Class Template Reference

Public Types

using value_type = Type
 
using vector_type = basic_vector3< value_type >
 

Public Member Functions

 basic_volume (const vector_type &min, const vector_type &max) noexcept
 
auto min () const noexcept -> const vector_type &
 
auto max () const noexcept -> const vector_type &
 
auto center () const noexcept -> vector_type
 
auto corners () const noexcept -> std::array< math::vector3, 8u >
 
auto contains (const vector_type &point) const noexcept -> bool
 
auto contains (const basic_volume &other) const noexcept -> bool
 
auto intersects (const basic_volume &other) const noexcept -> bool
 
auto extend () const noexcept -> math::vector3
 
auto diagonal_length () const noexcept -> value_type
 
auto is_empty () const noexcept -> bool
 
auto include (const basic_volume &other) noexcept -> void
 

Static Public Member Functions

static auto transformed (const basic_volume &volume, const math::matrix4x4 &matrix) -> basic_volume
 
static auto merge (const basic_volume &a, const basic_volume &b) -> basic_volume
 
static auto are_overlapping (const basic_volume &a, const basic_volume &b) -> bool
 
template<std::ranges::input_range Range, typename Projection = std::identity>
requires (std::convertible_to<std::invoke_result_t<Projection, std::ranges::range_reference_t<Range>>, vector_type>)
static auto construct (Range &&range, Projection projection={}) -> basic_volume
 

The documentation for this class was generated from the following file: