fj_core/operations/transform/
edge.rs1use fj_math::Transform;
2
3use crate::{
4 geometry::HalfEdgeGeometry, objects::HalfEdge, operations::insert::Insert,
5 storage::Handle, Core,
6};
7
8use super::{TransformCache, TransformObject};
9
10impl TransformObject for Handle<HalfEdge> {
11 fn transform_with_cache(
12 &self,
13 transform: &Transform,
14 core: &mut Core,
15 cache: &mut TransformCache,
16 ) -> Self {
17 let path = core.layers.geometry.of_half_edge(self).path;
20 let boundary = self.boundary();
21 let curve = self
22 .curve()
23 .clone()
24 .transform_with_cache(transform, core, cache);
25 let start_vertex = self
26 .start_vertex()
27 .clone()
28 .transform_with_cache(transform, core, cache);
29
30 let half_edge =
31 HalfEdge::new(path, boundary, curve, start_vertex).insert(core);
32
33 core.layers
34 .geometry
35 .define_half_edge(half_edge.clone(), HalfEdgeGeometry { path });
36
37 half_edge
38 }
39}