opynsim
Unofficial C++ Documentation
Loading...
Searching...
No Matches
Namespaces | Functions
aabb_functions.h File Reference
#include <liboscar/concepts/input_range_with_size_greater_than.h>
#include <liboscar/maths/aabb.h>
#include <liboscar/maths/common_functions.h>
#include <liboscar/maths/matrix4x4.h>
#include <liboscar/maths/rect.h>
#include <liboscar/maths/transform.h>
#include <liboscar/maths/vector.h>
#include <array>
#include <concepts>
#include <functional>
#include <optional>
#include <ranges>
Include dependency graph for aabb_functions.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  osc
 
namespace  osc::detail
 

Functions

constexpr Vector3 osc::centroid_of (const AABB &aabb)
 
constexpr Vector3 osc::dimensions_of (const AABB &aabb)
 
constexpr Vector3 osc::half_widths_of (const AABB &aabb)
 
constexpr float osc::volume_of (const AABB &aabb)
 
constexpr bool osc::is_point (const AABB &aabb)
 
constexpr bool osc::has_zero_volume (const AABB &aabb)
 
std::array< Vector3, 8 > osc::corner_vertices_of (const AABB &aabb)
 
AABB osc::transform_aabb (const Matrix4x4 &m, const AABB &aabb)
 
AABB osc::transform_aabb (const Transform &t, const AABB &aabb)
 
constexpr AABB osc::bounding_aabb_of (const Vector3 &x)
 
constexpr AABB osc::bounding_aabb_of (const AABB &x, const Vector3 &y)
 
constexpr AABB osc::bounding_aabb_of (const AABB &x, const AABB &y)
 
constexpr AABB osc::bounding_aabb_of (const std::optional< AABB > &x, const AABB &y)
 
constexpr std::optional< AABBosc::bounding_aabb_of (std::optional< AABB > x, std::optional< AABB > y)
 
template<std::ranges::input_range R, class Proj = std::identity>
requires std::convertible_to<typename std::projected<std::ranges::iterator_t<R>, Proj>::value_type, const Vector3&>
constexpr AABB osc::detail::bounding_aabb_of_nonempty_range (R &&r, Proj proj={})
 
template<std::ranges::input_range R, class Proj = std::identity>
requires std::convertible_to<typename std::projected<std::ranges::iterator_t<R>, Proj>::value_type, const Vector3&>
constexpr std::optional< AABBosc::bounding_aabb_of (R &&r, Proj proj={})
 
template<InputRangeWithSizeGreaterThan< 0 > R, class Proj = std::identity>
requires std::convertible_to<typename std::projected<std::ranges::iterator_t<R>, Proj>::value_type, const Vector3&>
constexpr AABB osc::bounding_aabb_of (R &&r, Proj proj={})
 
template<std::ranges::input_range Range, class Proj = std::identity>
requires std::convertible_to<typename std::projected<std::ranges::iterator_t<Range>, Proj>::value_type, const AABB&>
constexpr std::optional< AABBosc::bounding_aabb_of (Range &&r, Proj proj={})
 
template<std::ranges::input_range Range, class Proj = std::identity>
requires std::convertible_to<typename std::projected<std::ranges::iterator_t<Range>, Proj>::value_type, const std::optional<AABB>&>
 osc::and (not std::convertible_to< typename std::projected< std::ranges::iterator_t< Range >, Proj >::value_type, const AABB & >) const expr std
 
std::optional< Rectosc::loosely_project_into_ndc (const AABB &aabb, const Matrix4x4 &view_mat, const Matrix4x4 &proj_mat, float znear, float zfar)