1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use fj_math::Transform;
use crate::{
objects::Objects, partial::PartialCycle, validate::ValidationError,
};
use super::TransformObject;
impl TransformObject for PartialCycle {
fn transform(
self,
transform: &Transform,
objects: &Objects,
) -> Result<Self, ValidationError> {
let surface = self
.surface
.clone()
.map(|surface| surface.transform(transform, objects))
.transpose()?;
let half_edges = self
.half_edges
.into_iter()
.map(|edge| {
Ok(edge
.into_partial()
.transform(transform, objects)?
.with_surface(surface.clone())
.into())
})
.collect::<Result<_, ValidationError>>()?;
Ok(Self {
surface,
half_edges,
})
}
}