[−][src]Struct splashsurf_lib::octree::Octree
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]
grid: &UniformGrid<I, R>,
particle_positions: &[Vector3<R>],
subdivision_criterion: SubdivisionCriterion,
margin: R,
enable_multi_threading: bool
) -> Self
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]
&mut self,
grid: &UniformGrid<I, R>,
particle_positions: &[Vector3<R>],
subdivision_criterion: SubdivisionCriterion,
margin: R
)
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]
&mut self,
grid: &UniformGrid<I, R>,
particle_positions: &[Vector3<R>],
subdivision_criterion: SubdivisionCriterion,
margin: R
)
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]
&self,
grid: &UniformGrid<I, R>,
only_non_empty: bool
) -> HexMesh3d<R>
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]
I: RefUnwindSafe,
R: RefUnwindSafe,
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]
I: Unpin,
R: Unpin,
impl<I, R> UnwindSafe for Octree<I, R> where
I: UnwindSafe,
R: UnwindSafe,
[src]
I: UnwindSafe,
R: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
SS: SubsetOf<SP>,
pub fn to_subset(&self) -> Option<SS>
pub fn is_in_subset(&self) -> bool
pub fn to_subset_unchecked(&self) -> SS
pub fn from_subset(element: &SS) -> SP
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,