use crate::misc::FloatingPoint;
#[derive(Debug, Clone)]
pub struct AdvancingFrontOptions<T: FloatingPoint> {
pub chord_height_tolerance: T,
pub norm_tolerance: T,
pub min_edge_length: T,
pub max_edge_length: T,
}
impl<T: FloatingPoint> Default for AdvancingFrontOptions<T> {
fn default() -> Self {
Self {
chord_height_tolerance: T::from_f64(0.1).unwrap(),
norm_tolerance: T::from_f64(2.5e-2).unwrap(),
min_edge_length: T::from_f64(1e-6).unwrap(),
max_edge_length: T::from_f64(1e3).unwrap(),
}
}
}
impl<T: FloatingPoint> AdvancingFrontOptions<T> {
pub fn with_chord_height_tolerance(mut self, tolerance: T) -> Self {
self.chord_height_tolerance = tolerance;
self
}
pub fn with_norm_tolerance(mut self, norm_tolerance: T) -> Self {
self.norm_tolerance = norm_tolerance;
self
}
pub fn with_min_edge_length(mut self, len: T) -> Self {
self.min_edge_length = len;
self
}
pub fn with_max_edge_length(mut self, len: T) -> Self {
self.max_edge_length = len;
self
}
}