//! Native Rust tetrahedral mesh generation from labeled medical images. //! //! This crate provides mesh generation capabilities for finite element analysis, //! similar to CGAL but implemented in pure Rust for better integration and //! future GPU acceleration. //! //! # Features //! //! - **Delaunay Tetrahedralization**: 3D Delaunay triangulation using Bowyer-Watson algorithm //! - **Labeled Image Meshing**: Convert segmented medical images to tetrahedral meshes //! - **Mesh Quality Metrics**: Radius-edge ratio, dihedral angles, aspect ratio //! - **Mesh Optimization**: Laplacian and Lloyd/CVT smoothing //! //! # Example //! //! ```ignore //! use rtx_mesh_gen::{LabeledDomain, MeshCriteria}; //! //! // Load a labeled NIfTI image //! let domain = LabeledDomain::from_nifti("brain_labels.nii.gz", vec![1, 2, 3])?; //! //! // Set mesh criteria //! let criteria = MeshCriteria { //! facet_angle: 30.0, //! facet_size: 1.0, //! cell_radius_edge_ratio: 3.0, //! cell_size: 1.0, //! }; //! //! // Generate mesh //! let mesh = domain.generate_mesh(&criteria)?; //! println!("Generated {} tetrahedra", mesh.num_tetrahedra()); //! ``` pub mod delaunay; pub mod error; pub mod labeled; pub mod mesh; pub mod quality; // Re-exports for convenience pub use delaunay::delaunay_3d; pub use error::{MeshGenError, Result}; pub use labeled::{LabeledDomain, MeshCriteria}; pub use mesh::{TetrahedralMesh, Tetrahedron, Triangle, Vertex}; pub use quality::{MeshQuality, QualityMetrics, laplacian_smooth, lloyd_smooth}; /// Prelude module for commonly used items. pub mod prelude { pub use crate::delaunay::delaunay_3d; pub use crate::error::{MeshGenError, Result}; pub use crate::labeled::{LabeledDomain, MeshCriteria}; pub use crate::mesh::{TetrahedralMesh, Tetrahedron, Triangle, Vertex}; pub use crate::quality::{MeshQuality, QualityMetrics, laplacian_smooth, lloyd_smooth}; }