Skip to main content

cartan_remesh/
lib.rs

1// ~/cartan/cartan-remesh/src/lib.rs
2
3//! # cartan-remesh
4//!
5//! Adaptive remeshing primitives for simplicial meshes on Riemannian manifolds.
6//!
7//! 2D triangle operations (`primitives`, `driver`, `lcr`) are generic over
8//! `M: Manifold` and operate on `&mut Mesh<M, 3, 2>`. 3D tet operations
9//! (`primitives_3d`) operate on `&mut Mesh<Euclidean<3>, 4, 3>` and are
10//! limited to barycentric refinement in v1.2. Every mutation is logged in a
11//! [`RemeshLog`] so that downstream solvers can interpolate fields across
12//! topology changes.
13
14pub mod config;
15pub mod driver;
16pub mod error;
17pub mod lcr;
18pub mod log;
19pub mod primitives;
20pub mod primitives_3d;
21
22pub use config::RemeshConfig;
23pub use driver::adaptive_remesh;
24pub use driver::needs_remesh;
25pub use error::RemeshError;
26pub use lcr::{capture_reference_lcrs, lcr_spring_energy, lcr_spring_gradient, length_cross_ratio};
27pub use log::{EdgeCollapse, EdgeFlip, EdgeSplit, RemeshLog, VertexShift};
28pub use primitives::{collapse_edge, flip_edge, shift_vertex, split_edge};
29pub use primitives_3d::{barycentric_refine_tets, indicator_flags, red_refine_tets_uniform, refine_to_depth};