|
Tatooine
|
#include <axis_aligned_bounding_box.h>
Public Types | |
| using | real_type = Real |
| using | this_type = axis_aligned_bounding_box< Real, NumDimensions > |
| using | vec_type = vec< Real, NumDimensions > |
| using | pos_type = vec_type |
Public Types inherited from tatooine::detail::aabb_ray_intersectable_parent< axis_aligned_bounding_box< Real, NumDimensions >, Real, NumDimensions > | |
| using | parent_type = ray_intersectable< Real, NumDimensions > |
| using | intersection_type = intersection< real_type, NumDimensions > |
| using | optional_intersection_type = std::optional< intersection_type > |
| using | ray_type = ray< real_type, NumDimensions > |
Public Types inherited from tatooine::ray_intersectable< Real, NumDimensions > | |
| using | real_type = Real |
| using | intersection_type = intersection< real_type, NumDimensions > |
| using | optional_intersection_type = std::optional< intersection_type > |
| using | ray_type = ray< real_type, NumDimensions > |
Public Member Functions | |
| constexpr | axis_aligned_bounding_box () |
| constexpr | axis_aligned_bounding_box (axis_aligned_bounding_box const &other)=default |
| constexpr | axis_aligned_bounding_box (axis_aligned_bounding_box &&other) noexcept=default |
| constexpr auto | operator= (axis_aligned_bounding_box const &other) -> axis_aligned_bounding_box &=default |
| constexpr auto | operator= (axis_aligned_bounding_box &&other) noexcept -> axis_aligned_bounding_box &=default |
| ~axis_aligned_bounding_box ()=default | |
| template<typename Real0 , typename Real1 > | |
| constexpr | axis_aligned_bounding_box (vec< Real0, NumDimensions > &&min, vec< Real1, NumDimensions > &&max) noexcept |
| template<typename Real0 , typename Real1 > | |
| constexpr | axis_aligned_bounding_box (vec< Real0, NumDimensions > const &min, vec< Real1, NumDimensions > const &max) |
| template<typename Tensor0 , typename Tensor1 , typename Real0 , typename Real1 > | |
| constexpr | axis_aligned_bounding_box (base_tensor< Tensor0, Real0, NumDimensions > const &min, base_tensor< Tensor1, Real1, NumDimensions > const &max) |
| auto constexpr | min () const -> auto const & |
| auto constexpr | min () -> auto & |
| auto constexpr | min (std::size_t i) const -> auto const & |
| auto constexpr | min (std::size_t i) -> auto & |
| auto constexpr | max () const -> auto const & |
| auto constexpr | max () -> auto & |
| auto constexpr | max (std::size_t i) const -> auto const & |
| auto constexpr | max (std::size_t i) -> auto & |
| auto constexpr | extents () const |
| auto constexpr | extent (std::size_t i) const |
| auto constexpr | area () const |
| auto constexpr | volume () const |
| auto constexpr | center () const |
| auto constexpr | center (std::size_t const i) const |
| auto constexpr | is_inside (pos_type const &p) const |
| constexpr auto | is_rectangle_inside (vec< Real, 2 > x0, vec< Real, 2 > x1, vec< Real, 2 > x2, vec< Real, 2 > x3) const |
| constexpr auto | is_simplex_inside (vec< Real, 2 > const &x0, vec< Real, 2 > const &x1, vec< Real, 2 > const &x2) const |
| constexpr auto | is_simplex_inside (vec< Real, 3 > x0, vec< Real, 3 > x1, vec< Real, 3 > x2) const |
| constexpr auto | is_simplex_inside (vec< Real, 3 > x0, vec< Real, 3 > x1, vec< Real, 3 > x2, vec< Real, 3 > x3) const |
| constexpr auto | operator+= (pos_type const &point) |
| constexpr auto | reset () |
| constexpr auto | add_dimension (Real const min, Real const max) const |
| template<typename RandomEngine = std::mt19937_64> | |
| auto | random_point (RandomEngine &&random_engine=RandomEngine{ std::random_device{}()}) const |
| auto | write_vtk (filesystem::path const &path) |
Public Member Functions inherited from tatooine::detail::aabb_ray_intersectable_parent< axis_aligned_bounding_box< Real, NumDimensions >, Real, NumDimensions > | |
| auto | as_aabb () const -> auto const & |
| auto | check_intersection (ray_type const &r, Real const=0) const -> optional_intersection_type override |
Public Member Functions inherited from tatooine::ray_intersectable< Real, NumDimensions > | |
| virtual | ~ray_intersectable ()=default |
| virtual auto | check_intersection (ray_type const &r, real_type const min_t) const -> optional_intersection_type=0 |
Static Public Member Functions | |
| static constexpr auto | num_dimensions () -> std::size_t |
| static constexpr auto | infinite () |
Private Member Functions | |
| template<std::size_t... Is> | |
| auto constexpr | area (std::index_sequence< Is... >) const |
| template<std::size_t... Is> | |
| auto constexpr | volume (std::index_sequence< Is... >) const |
Private Attributes | |
| pos_type | m_min |
| pos_type | m_max |
| using tatooine::axis_aligned_bounding_box< Real, NumDimensions >::pos_type = vec_type |
| using tatooine::axis_aligned_bounding_box< Real, NumDimensions >::real_type = Real |
| using tatooine::axis_aligned_bounding_box< Real, NumDimensions >::this_type = axis_aligned_bounding_box<Real, NumDimensions> |
| using tatooine::axis_aligned_bounding_box< Real, NumDimensions >::vec_type = vec<Real, NumDimensions> |
|
inlineconstexpr |
|
constexprdefault |
|
constexprdefaultnoexcept |
|
default |
|
inlineconstexprnoexcept |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexprprivate |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlinestaticconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
x3 +-----------—+ x2 | | | | x0 +-----------—+ x1
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlinestaticconstexpr |
|
inlineconstexpr |
|
constexprdefaultnoexcept |
|
constexprdefault |
|
inline |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexprprivate |
|
inline |
|
private |
|
private |