ncollide3d::partitioning

Trait BVH

Source
pub trait BVH<T, BV> {
    type Node: Copy;

    // Required methods
    fn root(&self) -> Option<Self::Node>;
    fn num_children(&self, node: Self::Node) -> usize;
    fn child(&self, i: usize, node: Self::Node) -> Self::Node;
    fn content(&self, node: Self::Node) -> (&BV, Option<&T>);

    // Provided methods
    fn visit(&self, visitor: &mut impl Visitor<T, BV>) { ... }
    fn visit_bvtt(
        &self,
        other: &impl BVH<T, BV>,
        visitor: &mut impl SimultaneousVisitor<T, BV>,
    ) { ... }
    fn best_first_search<N, BFS>(
        &self,
        visitor: &mut BFS,
    ) -> Option<(Self::Node, BFS::Result)>
       where N: RealField + Copy,
             BFS: BestFirstVisitor<N, T, BV> { ... }
}
Expand description

Trait implemented by Bounding Volume Hierarchy.

Required Associated Types§

Source

type Node: Copy

Type of a node identifiers on this BVH.

Required Methods§

Source

fn root(&self) -> Option<Self::Node>

The root of the BVH.

Source

fn num_children(&self, node: Self::Node) -> usize

The number of children of the given node.

Source

fn child(&self, i: usize, node: Self::Node) -> Self::Node

The i-th child of the given node.

Source

fn content(&self, node: Self::Node) -> (&BV, Option<&T>)

The bounding volume and data contained by the given node.

Provided Methods§

Source

fn visit(&self, visitor: &mut impl Visitor<T, BV>)

Traverses this BVH using a visitor.

Source

fn visit_bvtt( &self, other: &impl BVH<T, BV>, visitor: &mut impl SimultaneousVisitor<T, BV>, )

Visits the bounding volume test tree implicitly formed with other.

Performs a best-first-search on the BVH.

Returns the content of the leaf with the smallest associated cost, and a result of user-defined type.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'a, N: RealField + Copy, T, BV> BVH<T, BV> for DBVT<N, T, BV>

Source§

impl<'a, T, BV> BVH<T, BV> for BVT<T, BV>