[][src]Struct splashsurf_lib::octree::Octree

pub struct Octree<I: Index, R: Real> { /* fields omitted */ }

Data structure for octree based spatial subdivision of particles sets, for tree iteration/visitation use the root OctreeNode

Implementations

impl<I: Index, R: Real> Octree<I, R>[src]

pub fn new(grid: &UniformGrid<I, R>, n_particles: usize) -> Self[src]

Creates a new octree with a single leaf node containing all vertices

pub fn new_subdivided(
    grid: &UniformGrid<I, R>,
    particle_positions: &[Vector3<R>],
    subdivision_criterion: SubdivisionCriterion,
    margin: R,
    enable_multi_threading: bool
) -> Self
[src]

Create a new octree and perform subdivision with the specified margin

The margin is used to assign ghost particles to octree nodes. Each octant resulting from the subdivision gets assigned all particles that are directly inside it plus all particles from its parent that are within the given margin around the octant.

pub fn with_root(root: OctreeNode<I, R>) -> Self[src]

Creates a new octree with the given node as root

pub fn root(&self) -> &OctreeNode<I, R>[src]

Returns a reference to the root node of the octree

pub fn root_mut(&mut self) -> &mut OctreeNode<I, R>[src]

Returns a mutable reference to the root node of the octree

pub fn subdivide_recursively_margin(
    &mut self,
    grid: &UniformGrid<I, R>,
    particle_positions: &[Vector3<R>],
    subdivision_criterion: SubdivisionCriterion,
    margin: R
)
[src]

Subdivide the octree recursively using the given splitting criterion and a margin to add ghost particles

pub fn subdivide_recursively_margin_par(
    &mut self,
    grid: &UniformGrid<I, R>,
    particle_positions: &[Vector3<R>],
    subdivision_criterion: SubdivisionCriterion,
    margin: R
)
[src]

Subdivide the octree recursively and in parallel using the given splitting criterion and a margin to add ghost particles

pub fn hexmesh(
    &self,
    grid: &UniformGrid<I, R>,
    only_non_empty: bool
) -> HexMesh3d<R>
[src]

Constructs a hex mesh visualizing the cells of the octree, may contain hanging and duplicate vertices as cells are not connected

Trait Implementations

impl<I: Clone + Index, R: Clone + Real> Clone for Octree<I, R>[src]

impl<I: Debug + Index, R: Debug + Real> Debug for Octree<I, R>[src]

Auto Trait Implementations

impl<I, R> RefUnwindSafe for Octree<I, R> where
    I: RefUnwindSafe,
    R: RefUnwindSafe
[src]

impl<I, R> Send for Octree<I, R>[src]

impl<I, R> Sync for Octree<I, R>[src]

impl<I, R> Unpin for Octree<I, R> where
    I: Unpin,
    R: Unpin
[src]

impl<I, R> UnwindSafe for Octree<I, R> where
    I: UnwindSafe,
    R: UnwindSafe
[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T

type Init = T

The type for initializers.

impl<T> Same<T> for T

type Output = T

Should always be Self

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

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,