#[non_exhaustive]pub enum MinkowskiError {
NotASolid {
operand: &'static str,
boundary: usize,
non_manifold: usize,
},
EmptyOperand(&'static str),
NotConvex {
operand: &'static str,
},
ErosionSubjectNotConvex,
DecompositionFailed {
operand: &'static str,
reason: String,
},
HullFailed(String),
BooleanFailed(String),
BudgetExceeded {
pairs: usize,
limit: usize,
},
}Expand description
Why a Minkowski operation could not be performed.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
NotASolid
An operand is not a closed two-manifold solid.
Fields
EmptyOperand(&'static str)
An operand has no vertices to sum.
NotConvex
minkowski_sum was given a non-convex operand.
The convex-only entry point refuses rather than silently returning the hull, which for a non-convex operand is strictly too large.
ErosionSubjectNotConvex
The erosion’s subject is not convex.
Refused rather than approximated: for a non-convex subject the vertex-wise containment test admits translations that do not actually fit, so the result would be too large.
DecompositionFailed
The decomposition of an operand failed.
HullFailed(String)
A hull could not be built from a pairwise vertex sum.
BooleanFailed(String)
A boolean step failed.
BudgetExceeded
The pairwise product exceeds the budget.
Reported rather than run: the work is the product of the two part counts, so a modestly non-convex pair can be very expensive, and a caller deserves to know before it starts rather than after.
Trait Implementations§
Source§impl Clone for MinkowskiError
impl Clone for MinkowskiError
Source§fn clone(&self) -> MinkowskiError
fn clone(&self) -> MinkowskiError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more