fj_core/operations/reverse/
edge.rs1use crate::{
2 geometry::HalfEdgeGeometry,
3 objects::HalfEdge,
4 operations::{derive::DeriveFrom, insert::Insert},
5 storage::Handle,
6 Core,
7};
8
9use super::ReverseCurveCoordinateSystems;
10
11impl ReverseCurveCoordinateSystems for Handle<HalfEdge> {
12 fn reverse_curve_coordinate_systems(&self, core: &mut Core) -> Self {
13 let path = core.layers.geometry.of_half_edge(self).path.reverse();
14 let boundary = self.boundary().reverse();
15
16 let half_edge = HalfEdge::new(
17 path,
18 boundary,
19 self.curve().clone(),
20 self.start_vertex().clone(),
21 )
22 .insert(core)
23 .derive_from(self, core);
24
25 core.layers
26 .geometry
27 .define_half_edge(half_edge.clone(), HalfEdgeGeometry { path });
28
29 half_edge
30 }
31}