Files
rustytorch/crates/specialized/rtx-mesh-gen/src/lib.rs
T
2026-03-04 00:08:42 +00:00

56 lines
1.9 KiB
Rust

//! 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};
}