runmat_geometry_ops/
quality.rs1use 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}