runmat_geometry_core/model/
tessellation_profile.rs1use 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}