1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//! Solid approximation

use std::collections::BTreeSet;

use crate::objects::Solid;

use super::{face::FaceApprox, Approx, Tolerance};

impl Approx for &Solid {
    type Approximation = BTreeSet<FaceApprox>;

    fn approx(self, tolerance: Tolerance) -> Self::Approximation {
        self.shells()
            .flat_map(|shell| shell.approx(tolerance))
            .collect()
    }
}