44 static_cast<std::uint8_t
>(
right));
51 static_cast<std::uint8_t
>(
right));
59 ~
static_cast<std::uint8_t
>(
value));
80 1U <<
static_cast<std::uint8_t
>(
plane));
95 const T maximum = std::max({std::abs(
x), std::abs(
y), std::abs(
z)});
114 template <
typename T>
115 requires std::is_floating_point_v<T>
197 return Planes_[
static_cast<std::size_t
>(
plane)];
207 return ActivePlanes_;
215 Frustum3(
const std::array<Plane3<T>, 6>& planes,
217 UncheckedTag) noexcept :
218 Planes_(planes), ActivePlanes_(activePlanes)
222 std::array<Plane3<T>, 6> Planes_{};
static std::optional< Frustum3 > TryFromPlanes(const std::array< Plane3< T >, 6 > &planes, FrustumPlaneMask activePlanes=FrustumPlaneMask::All) noexcept
static std::optional< Frustum3 > TryFromViewProjection(const Mat4< T > &viewProjection, ClipDepth clipDepth, DepthDirection depthDirection) noexcept
FrustumPlaneMask ActivePlanes() const noexcept
bool IsActive(FrustumPlane plane) const noexcept
const Plane3< T > & Plane(FrustumPlane plane) const noexcept
static std::optional< Normal3 > TryFrom(const Vec3< T > &value) noexcept
static std::optional< Plane3 > TryFromNormalAndOffset(const Normal3< T > &normal, T offset) noexcept
std::optional< Plane3< T > > TryPlaneFromCoefficients(T x, T y, T z, T offset) noexcept
constexpr FrustumPlaneMask & operator|=(FrustumPlaneMask &left, FrustumPlaneMask right) noexcept
constexpr FrustumPlaneMask operator|(FrustumPlaneMask left, FrustumPlaneMask right) noexcept
constexpr FrustumPlaneMask operator&(FrustumPlaneMask left, FrustumPlaneMask right) noexcept
constexpr FrustumPlaneMask & operator&=(FrustumPlaneMask &left, FrustumPlaneMask right) noexcept
T Length(const Quat< T > &value) noexcept
constexpr FrustumPlaneMask PlaneMask(FrustumPlane plane) noexcept
constexpr FrustumPlaneMask operator~(FrustumPlaneMask value) noexcept
constexpr bool HasPlane(FrustumPlaneMask mask, FrustumPlane plane) noexcept