use crate::misc::FloatingPoint;
#[derive(Debug, Clone)]
pub struct AdvancingFrontOptions<T: FloatingPoint> {
pub deflection: T,
pub min_edge_length: T,
pub max_edge_length: T,
pub min_angle: T,
}
impl<T: FloatingPoint> Default for AdvancingFrontOptions<T> {
fn default() -> Self {
Self {
deflection: T::from_f64(0.1).unwrap(),
min_edge_length: T::from_f64(1e-6).unwrap(),
max_edge_length: T::from_f64(1e3).unwrap(),
min_angle: T::from_f64(std::f64::consts::FRAC_PI_6).unwrap(), }
}
}
impl<T: FloatingPoint> AdvancingFrontOptions<T> {
pub fn with_deflection(mut self, deflection: T) -> Self {
self.deflection = deflection;
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
}
pub fn with_min_angle(mut self, angle: T) -> Self {
self.min_angle = angle;
self
}
}