pub struct Bvh {
pub root: BvhNode,
}Expand description
A flat BVH built from (GlyphId, Aabb) pairs.
Fields§
§root: BvhNodeImplementations§
Source§impl Bvh
impl Bvh
pub fn build(items: &[(GlyphId, Aabb)]) -> Self
Sourcepub fn sphere_query(&self, center: Vec3, radius: f32) -> Vec<GlyphId>
pub fn sphere_query(&self, center: Vec3, radius: f32) -> Vec<GlyphId>
Find all glyph IDs whose bounding box intersects the sphere.
Sourcepub fn ray_query(&self, origin: Vec3, direction: Vec3) -> Vec<(GlyphId, f32)>
pub fn ray_query(&self, origin: Vec3, direction: Vec3) -> Vec<(GlyphId, f32)>
Find all glyph IDs intersected by a ray, sorted by distance.
Sourcepub fn aabb_query(&self, query: &Aabb) -> Vec<GlyphId>
pub fn aabb_query(&self, query: &Aabb) -> Vec<GlyphId>
AABB overlap query.
pub fn depth(&self) -> usize
pub fn count(&self) -> usize
Auto Trait Implementations§
impl Freeze for Bvh
impl RefUnwindSafe for Bvh
impl Send for Bvh
impl Sync for Bvh
impl Unpin for Bvh
impl UnsafeUnpin for Bvh
impl UnwindSafe for Bvh
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.