Add the modelcraft-mesh crate (empty: error type only) (#3)

So the predicates and quality tasks can add modules in parallel without both creating the crate.


Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

Co-authored-by: jyviko <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
This commit is contained in:
authored and GitHub committed 2026-10-13 14:31:15 -04:00
1 parent 4abfa0845b
commit 620ef6bc64
5 files changed
+45 -1

No files matched your search

+13
View File
@@ -0,0 +1,13 @@
[package]
name = "modelcraft-mesh"
description = "ModelCraft's meshing: robust predicates, surface preparation, tetrahedral and hexahedral meshing, quality metrics"
version.workspace = true
edition.workspace = true
license.workspace = true
[lints]
workspace = true
[dependencies]
modelcraft-model = { workspace = true }
thiserror = { workspace = true }
+22
View File
@@ -0,0 +1,22 @@
//! Meshing: robust geometric predicates, boundary surface preparation, tetrahedral and
//! hexahedral volume meshing, and element quality.
//!
//! Every algorithm here is implemented from the papers cited in its module docs (see
//! `docs/meshing/literature.md`); no GPL-family code is read or used. Meshing decisions use exact
//! predicates, results are deterministic, and every iterative stage is bounded.
#![deny(clippy::unwrap_used, clippy::expect_used, clippy::panic, clippy::unimplemented, clippy::todo, clippy::unreachable)]
#![forbid(unsafe_code)]
#[derive(Debug, Clone, PartialEq, thiserror::Error)]
pub enum Error {
#[error("invalid input: {0}")]
Invalid(String),
#[error("limit reached: {0}")]
Limit(String),
#[error("meshing failed: {0}")]
Failed(String),
#[error(transparent)]
Model(#[from] modelcraft_model::Error),
}
pub type Result<T> = std::result::Result<T, Error>;