15 requires std::is_floating_point_v<T>
26 if (!std::isfinite(
center.X()) || !std::isfinite(
center.Y()) ||
37 return Point3<T>(Value_.X(), Value_.Y(), Value_.Z());
53 std::conditional_t<(
sizeof(
T) <
sizeof(
double)),
double,
T>;
75 Sphere3(
const Point3<T>& center, T radius, UncheckedTag) noexcept :
76 Value_(center.X(), center.Y(), center.Z(), radius)
89static_assert(std::is_trivially_copyable_v<mv::math::Sphere3f>);
90static_assert(std::is_standard_layout_v<mv::math::Sphere3f>);
93static_assert(std::is_trivially_copyable_v<mv::math::Sphere3d>);
94static_assert(std::is_standard_layout_v<mv::math::Sphere3d>);
T Radius() const noexcept
Point3< T > Center() const noexcept
static std::optional< Sphere3 > TryFromCenterRadius(const Point3< T > ¢er, T radius) noexcept
Sphere3() noexcept=default
friend bool operator==(const Sphere3 &left, const Sphere3 &right) noexcept
T Diameter() const noexcept
bool Contains(const Point3< T > &point) const noexcept
Sphere3< float > Sphere3f
Sphere3< double > Sphere3d