Skip to main content

runmat_geometry_core/model/
tessellation_profile.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
4#[serde(rename_all = "snake_case")]
5pub enum HealingMode {
6    #[default]
7    Safe,
8    Off,
9    Aggressive,
10}
11
12#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
13pub struct TessellationProfile {
14    pub profile_id: String,
15    pub chord_tolerance: Option<f64>,
16    pub angle_tolerance_deg: Option<f64>,
17    pub healing_mode: HealingMode,
18}
19
20impl Default for TessellationProfile {
21    fn default() -> Self {
22        Self {
23            profile_id: "default-v1".to_string(),
24            chord_tolerance: None,
25            angle_tolerance_deg: None,
26            healing_mode: HealingMode::Safe,
27        }
28    }
29}