Crate splashsurf_lib[][src]

Library for surface reconstruction of SPH particle data using marching cubes.

Entry points are the reconstruct_surface or reconstruct_surface_inplace functions.

Feature flags

The following features are all non-default features to reduces the amount of additional dependencies.

vtk_extras

Enables helper functions and trait implementations to export meshes using vtkio. In particular it adds From impls for the mesh types used by this crate to convert them to vtkio::model::UnstructuredGridPiece and vtkio::model::DataSet types. The crate exposes its vtkio dependency as splashsurflib::vtkio if the feature is enabled.

profiling

Enables profiling of internal functions. The resulting data can be displayed using the functions from the profiling module. Furthermore, it exposes the profile macro that can be used e.g. by binary crates calling into this library to add their own profiling scopes to the measurements. If this features is not enabled, the macro will just expend to a no-op and remove the (small) performance overhead of the profiling.

Re-exports

pub use nalgebra;
pub use vtkio;
pub use density_map::DensityMap;
pub use octree::SubdivisionCriterion;
pub use uniform_grid::GridConstructionError;
pub use uniform_grid::UniformGrid;

Modules

density_map

Computation of sparse density maps (evaluation of particle densities and mapping onto sparse grids)

generic_tree

Generic tree visitation functions that can be used with tree-like structures

kernel

SPH kernel function implementations

marching_cubes

Triangulation of DensityMaps using marching cubes

mesh

Basic mesh types used by the library and implementation of VTK export

neighborhood_search

Simple neighborhood search based on spatial hashing

octree

Octree for spatially partitioning particle sets

profiling

Implementation details for the profile macro

topology

Helper types for cartesian coordinate system topology

uniform_grid

Helper types for the implicit background grid used for marching cubes

Macros

profile

Creates a scope for profiling

Structs

AxisAlignedBoundingBox

Type representing an axis aligned bounding box in arbitrary dimensions

Parameters

Parameters for the surface reconstruction

SpatialDecompositionParameters

Parameters for the spatial decomposition

SurfaceReconstruction

Result data returned when the surface reconstruction was successful

Enums

ParticleDensityComputationStrategy

Available strategies for the computation of the particle densities

ReconstructionError

Error type returned when the surface reconstruction fails

Traits

Index

Trait that has to be implemented for types to be used as background grid cell indices in the context of the library

Real

Trait that has to be implemented for types to be used as floating points values in the context of the library (e.g. for coordinates, density values)

ThreadSafe

Convenience trait that combines Send and Sync

Functions

grid_for_reconstruction

Constructs the background grid for marching cubes based on the parameters supplied to the surface reconstruction

initialize_thread_pool

Initializes the global thread pool used by this library with the given parameters.

reconstruct_surface

Performs a marching cubes surface construction of the fluid represented by the given particle positions

reconstruct_surface_inplace

Performs a marching cubes surface construction of the fluid represented by the given particle positions, inplace

Type Definitions

AxisAlignedBoundingBox2d

Convenience type alias for an AABB in two dimensions

AxisAlignedBoundingBox3d

Convenience type alias for an AABB in three dimensions