22 std::size_t
axis)
noexcept
33 std::size_t
axis)
noexcept
56 return point.X() >
box.Minimum().X() &&
80 [[
nodiscard]]
inline std::optional<RayAabbSlabSolution<T>>
164 template <
typename T>
208 template <
typename T>
218 template <
typename T>
219 [[
nodiscard]]
inline std::optional<RaySphereSolution<T>>
272 template <
typename T>
296 template <
typename T>
303 template <
typename T>
325 template <
typename T>
332 template <
typename T>
339 template <
typename T>
348 template <
typename T>
367 template <
typename T>
374 template <
typename T>
404 template <
typename T>
414 template <
typename T>
423 template <
typename T>
430 template <
typename T>
static Normal3 AxisX() noexcept
static Normal3 AxisY() noexcept
static Normal3 AxisZ() noexcept
static std::optional< Normal3 > TryFrom(const Vec3< T > &value) noexcept
std::optional< RayAabbSlabSolution< T > > TryIntersectPreparedAabbSlabs(const PreparedRay3< T > &prepared, const Aabb3< T > &box) noexcept
Normal3< T > AxisNormal(std::size_t axis, T sign) noexcept
std::optional< RaySphereSolution< T > > TryIntersectRaySphere(const Ray3< T > &ray, const Sphere3< T > &sphere) noexcept
bool IsStrictlyInside(const Aabb3< T > &box, const Point3< T > &point) noexcept
bool IntersectsPreparedAabbSlabs(const PreparedRay3< T > &prepared, const Aabb3< T > &box) noexcept
T Component(const Vec3< T > &value, std::size_t axis) noexcept
std::conditional_t< std::is_same_v< T, float >, double, long double > QueryCalculation
bool Intersects(const Ray3< T > &ray, const Sphere3< T > &sphere) noexcept
std::optional< RaySphereHit3< T > > Intersect(const Ray3< T > &ray, const Sphere3< T > &sphere) noexcept
T DistanceSquared(const Point3< T > &point, const Line3< T > &line) noexcept