pub struct Collider { /* private fields */ }Implementations§
Source§impl Collider
impl Collider
Sourcepub fn new(leaf_bbox: Vec<BBox>, leaf_morton: Vec<u32>) -> Self
pub fn new(leaf_bbox: Vec<BBox>, leaf_morton: Vec<u32>) -> Self
Create a new Collider from leaf bounding boxes and morton codes. Sorts leaves by morton code internally (required by radix tree algorithm).
Sourcepub fn collisions_one<R: FnMut(usize, usize)>(
&self,
query: &BBox,
query_idx: usize,
record: R,
)
pub fn collisions_one<R: FnMut(usize, usize)>( &self, query: &BBox, query_idx: usize, record: R, )
Run a single query box against the BVH, invoking record(query_idx, leaf_idx) per overlap. Same traversal as collisions_fn for one
index — the per-query entry point for parallel callers (&self only,
so queries can run concurrently with thread-local recording).
Sourcepub fn collisions_fn<F, R>(&self, query_box_fn: F, n: usize, record: R)
pub fn collisions_fn<F, R>(&self, query_box_fn: F, n: usize, record: R)
BVH-accelerated collision query with function-generated query boxes. For each query index 0..n, calls query_box_fn(i) to get the query AABB, then traverses the BVH to find overlapping leaves.
Sourcepub fn collisions_with_boxes<F: FnMut(usize, usize)>(
&self,
queries: &[BBox],
self_collision: bool,
record: F,
)
pub fn collisions_with_boxes<F: FnMut(usize, usize)>( &self, queries: &[BBox], self_collision: bool, record: F, )
BVH-accelerated collision query with pre-computed query boxes.
Sourcepub fn collisions_point<F, R>(&self, point_fn: F, n: usize, record: R)
pub fn collisions_point<F, R>(&self, point_fn: F, n: usize, record: R)
Point-based collision query using BVH.
pub fn update_boxes(&mut self, leaf_bbox: Vec<BBox>)
pub fn transform(&mut self, transform: &Mat3x4)
pub fn leaf_count(&self) -> usize
pub fn leaf_bbox(&self) -> &[BBox]
pub fn morton_code(position: Vec3, bbox: &BBox) -> u32
pub fn is_axis_aligned(transform: &Mat3x4) -> bool
pub fn leaf_morton(&self) -> &[u32]
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Collider
impl RefUnwindSafe for Collider
impl Send for Collider
impl Sync for Collider
impl Unpin for Collider
impl UnsafeUnpin for Collider
impl UnwindSafe for Collider
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