Skip to main content

BvhResult

Struct BvhResult 

Source
pub struct BvhResult<'id, B: BvhBuilder> { /* private fields */ }
Expand description

Result of a build, valid only inside the generative scope. Branded by 'id.

Implementations§

Source§

impl<'id, B: BvhBuilder> BvhResult<'id, B>

Source

pub fn root(&self) -> Option<&B::Node<'id>>

The root node, or None for an empty tree (zero primitives).

Source

pub fn root_ptr(&self) -> Option<NodePtr<'id, B::Node<'id>>>

The root handle.

Source

pub fn resolve(&self, p: NodePtr<'id, B::Node<'id>>) -> &B::Node<'id>

Resolve a child handle to a node reference. Safe with no runtime check: the 'id brand proves the handle came from this same build, and the arena cannot have been freed or rebuilt – the generative build_scoped closure that produced this BvhResult holds the &mut Bvh exclusively for its whole duration, so no rebuild or drop can run while 'id is live. (The returned reference borrows self, tying it to the result handle.)

Auto Trait Implementations§

§

impl<'id, B> Freeze for BvhResult<'id, B>

§

impl<'id, B> RefUnwindSafe for BvhResult<'id, B>
where <B as BvhBuilder>::Node<'id>: RefUnwindSafe,

§

impl<'id, B> Send for BvhResult<'id, B>

§

impl<'id, B> Sync for BvhResult<'id, B>

§

impl<'id, B> Unpin for BvhResult<'id, B>

§

impl<'id, B> UnsafeUnpin for BvhResult<'id, B>

§

impl<'id, B> UnwindSafe for BvhResult<'id, B>
where <B as BvhBuilder>::Node<'id>: RefUnwindSafe,

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, 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.
Source§

impl<T> UserData for T
where T: Send + Sync + 'static,