v0.10.0
This release implements "Weighted Laplacian Smoothing for Surface Reconstruction of Particle-based Fluids" (Löschner, Böttcher, Jeske, Bender; 2023), mesh cleanup based on "Mesh Displacement: An Improved Contouring Method for Trivariate Data" (Moore, Warren; 1991) and a new, more efficient domain decomposition (see README.md for more details).
- Lib: Implement new spatial decomposition based on a regular grid of subdomains (subdomains are dense marching cubes grids)
- CLI: Make new spatial decomposition available in CLI with
--subdomain-grid=on - Lib: Implement weighted Laplacian smoothing to remove bumps from surfaces according to paper "Weighted Laplacian Smoothing for Surface Reconstruction of Particle-based Fluids" (Löschner, Böttcher, Jeske, Bender 2023)
- CLI: Add arguments to enable and control weighted Laplacian smoothing
--mesh-smoothing-iters=...,--mesh-smoothing-weights=onetc. - Lib: Implement
marching_cubes_cleanupfunction: a marching cubes "mesh cleanup" decimation inspired by "Mesh Displacement: An Improved Contouring Method for Trivariate Data" (Moore, Warren 1991) - CLI: Add argument to enable mesh cleanup:
--mesh-cleanup=on - Lib: Add functions to
TriMesh3dto find non-manifold edges and vertices - CLI: Add arguments to check if output meshes are manifold (no non-manifold edges and vertices):
--mesh-check-manifold=on,--mesh-check-closed=on - Lib: Support for mixed triangle and quad meshes
- Lib: Implement
convert_tris_to_quadsfunction: greedily merge triangles to quads if they fulfill certain criteria (maximum angle in quad, "squareness" of the quad, angle between triangle normals) - CLI: Add arguments to enable and control triangle to quad conversion with
--generate-quads=onetc. - Lib: Support for reading and writing PLY meshes (
MixedTriQuadMesh3d) - CLI: Support for filtering input particles using an AABB with
--particle-aabb-min/--particle-aabb-max - CLI: Support for clamping the triangle mesh using an AABB with
--mesh-aabb-min/--mesh-aabb-max