Struct bevy_math::bounding::BoundingSphere
source · pub struct BoundingSphere {
pub center: Vec3,
pub sphere: Sphere,
}
Expand description
A bounding sphere
Fields§
§center: Vec3
The center of the bounding sphere
sphere: Sphere
The sphere
Implementations§
source§impl BoundingSphere
impl BoundingSphere
sourcepub fn new(center: Vec3, radius: f32) -> Self
pub fn new(center: Vec3, radius: f32) -> Self
Constructs a bounding sphere from its center and radius.
sourcepub fn from_point_cloud(
translation: Vec3,
rotation: Quat,
points: &[Vec3]
) -> BoundingSphere
pub fn from_point_cloud( translation: Vec3, rotation: Quat, points: &[Vec3] ) -> BoundingSphere
Computes a BoundingSphere
containing the given set of points,
transformed by translation
and rotation
.
The bounding sphere is not guaranteed to be the smallest possible.
sourcepub fn aabb_3d(&self) -> Aabb3d
pub fn aabb_3d(&self) -> Aabb3d
Computes the smallest Aabb3d
containing this BoundingSphere
.
sourcepub fn closest_point(&self, point: Vec3) -> Vec3
pub fn closest_point(&self, point: Vec3) -> Vec3
Finds the point on the bounding sphere that is closest to the given point
.
If the point is outside the sphere, the returned point will be on the surface of the sphere. Otherwise, it will be inside the sphere and returned as is.
Trait Implementations§
source§impl BoundingVolume for BoundingSphere
impl BoundingVolume for BoundingSphere
§type Position = Vec3
type Position = Vec3
The position type used for the volume. This should be
Vec2
for 2D and Vec3
for 3D.§type HalfSize = f32
type HalfSize = f32
The type used for the size of the bounding volume. Usually a half size. For example an
f32
radius for a circle, or a Vec3
with half sizes for x, y and z for a 3D axis-aligned
bounding boxsource§fn visible_area(&self) -> f32
fn visible_area(&self) -> f32
Computes the visible surface area of the bounding volume.
This method can be useful to make decisions about merging bounding volumes,
using a Surface Area Heuristic. Read more
source§fn merge(&self, other: &Self) -> Self
fn merge(&self, other: &Self) -> Self
Computes the smallest bounding volume that contains both
self
and other
.source§impl Clone for BoundingSphere
impl Clone for BoundingSphere
source§fn clone(&self) -> BoundingSphere
fn clone(&self) -> BoundingSphere
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for BoundingSphere
impl Debug for BoundingSphere
source§impl IntersectsVolume<Aabb3d> for BoundingSphere
impl IntersectsVolume<Aabb3d> for BoundingSphere
source§fn intersects(&self, aabb: &Aabb3d) -> bool
fn intersects(&self, aabb: &Aabb3d) -> bool
Check if a volume intersects with this intersection test
source§impl IntersectsVolume<BoundingSphere> for Aabb3d
impl IntersectsVolume<BoundingSphere> for Aabb3d
source§fn intersects(&self, sphere: &BoundingSphere) -> bool
fn intersects(&self, sphere: &BoundingSphere) -> bool
Check if a volume intersects with this intersection test
source§impl IntersectsVolume<BoundingSphere> for BoundingSphere
impl IntersectsVolume<BoundingSphere> for BoundingSphere
source§fn intersects(&self, other: &Self) -> bool
fn intersects(&self, other: &Self) -> bool
Check if a volume intersects with this intersection test
source§impl IntersectsVolume<BoundingSphere> for BoundingSphereCast
impl IntersectsVolume<BoundingSphere> for BoundingSphereCast
source§fn intersects(&self, volume: &BoundingSphere) -> bool
fn intersects(&self, volume: &BoundingSphere) -> bool
Check if a volume intersects with this intersection test
source§impl IntersectsVolume<BoundingSphere> for RayCast3d
impl IntersectsVolume<BoundingSphere> for RayCast3d
source§fn intersects(&self, volume: &BoundingSphere) -> bool
fn intersects(&self, volume: &BoundingSphere) -> bool
Check if a volume intersects with this intersection test
impl Copy for BoundingSphere
Auto Trait Implementations§
impl RefUnwindSafe for BoundingSphere
impl Send for BoundingSphere
impl Sync for BoundingSphere
impl Unpin for BoundingSphere
impl UnwindSafe for BoundingSphere
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more