Skip to main content

runmat_geometry_ops/
quality.rs

1use runmat_geometry_core::{GeometryAsset, UnitSystem};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
5pub struct QualityReport {
6    pub warnings: Vec<String>,
7    pub errors: Vec<String>,
8}
9
10pub fn evaluate_quality(asset: &GeometryAsset) -> QualityReport {
11    let mut warnings = Vec::new();
12    let mut errors = Vec::new();
13
14    if asset.units == UnitSystem::Unspecified {
15        warnings.push("geometry units are unspecified".to_string());
16    }
17    if asset.meshes.is_empty() {
18        errors.push("geometry contains no meshes".to_string());
19    }
20
21    QualityReport { warnings, errors }
22}