Crate splashsurf_lib

Crate splashsurf_lib 

Source
Expand description

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 reduce 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. If the feature is enabled, The crate exposes its vtkio dependency as splashsurflib::vtkio.
  • io: Enables the io module, containing functions to load and store particle and mesh files from various file formats, e.g. VTK, OBJ, BGEO etc. This feature implies the vtk_extras feature. It is disabled by default because a pure “online” surface reconstruction might not need any file IO. The feature adds several dependencies to support the file formats.
  • profiling: Enables profiling of internal functions. The resulting data can be displayed using the functions from the profiling module of this crate. 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.
  • serde-serialize: Enables Serialize and Deserialize impls for some types using serde.

Re-exports§

pub use crate::density_map::DensityMap;
pub use crate::uniform_grid::UniformGrid;
pub use nalgebra;
pub use vtkio;

Modules§

dense_subdomains
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
halfedge_mesh
Basic implementation of a half-edge based triangle mesh
ioio
Convenience functions for importing particle data and meshes from various file formats
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
postprocessing
Functions for post-processing of surface meshes (decimation, smoothing, etc.)
profilingprofiling
Implementation details for the profile macro
sph_interpolation
Functions for interpolating quantities (e.g. normals, scalar fields) by evaluating SPH sums
topology
Helper types for cartesian coordinate system topology
uniform_grid
Helper types for the implicit background grid used for marching cubes

Macros§

profileprofiling
Creates a scope for profiling

Structs§

AxisAlignedBoundingBox
Type representing an axis aligned bounding box in arbitrary dimensions
GridDecompositionParameters
Parameters for the uniform grid-based spatial decomposition
Parameters
Parameters for the surface reconstruction
SurfaceReconstruction
Result data returned when the surface reconstruction was successful

Enums§

ReconstructionError
Error type returned when the surface reconstruction fails
SpatialDecomposition
Approach used for spatial decomposition of the surface reconstruction and its parameters

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)
RealConvert
Trait for converting values, matrices, etc. from one Real type to another.
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, in-place

Type Aliases§

Aabb2d
Convenience type alias for an AABB in two dimensions
Aabb3d
Convenience type alias for an AABB in three dimensions