Skip to main content

StaticBroadphase

Struct StaticBroadphase 

Source
pub struct StaticBroadphase<const D: usize> { /* private fields */ }
Expand description

Cached broadphase state for Static and Kinematic bodies.

Rebuilt only when a static/kinematic body is added or removed (dirty flag). This avoids including immovable geometry in the per-frame LBVH rebuild, which is O(n log n) in the total body count.

For scenes with many static bodies (terrain, walls) and few dynamic bodies, this typically halves or better the broadphase cost.

Implementations§

Source§

impl<const D: usize> StaticBroadphase<D>

Source

pub fn new() -> Self

Source

pub fn rebuild(&mut self, bodies: &[RigidBody<D>])

Rebuild the cache from all bodies in the world.

Call this when static_tree_dirty is set on PhysicsWorld.

Source

pub fn is_empty(&self) -> bool

Source

pub fn len(&self) -> usize

Trait Implementations§

Source§

impl<const D: usize> Default for StaticBroadphase<D>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<const D: usize> Freeze for StaticBroadphase<D>

§

impl<const D: usize> RefUnwindSafe for StaticBroadphase<D>

§

impl<const D: usize> Send for StaticBroadphase<D>

§

impl<const D: usize> Sync for StaticBroadphase<D>

§

impl<const D: usize> Unpin for StaticBroadphase<D>

§

impl<const D: usize> UnsafeUnpin for StaticBroadphase<D>

§

impl<const D: usize> UnwindSafe for StaticBroadphase<D>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.