fj_kernel/operations/update/
edge.rs1use crate::{
2 objects::{GlobalEdge, HalfEdge, Vertex},
3 storage::Handle,
4};
5
6pub trait UpdateHalfEdge {
8 fn replace_start_vertex(&self, start_vertex: Handle<Vertex>) -> HalfEdge;
10
11 fn replace_global_form(&self, global_form: Handle<GlobalEdge>) -> HalfEdge;
13}
14
15impl UpdateHalfEdge for HalfEdge {
16 fn replace_start_vertex(&self, start_vertex: Handle<Vertex>) -> HalfEdge {
17 HalfEdge::new(
18 self.curve(),
19 self.boundary(),
20 start_vertex,
21 self.global_form().clone(),
22 )
23 }
24
25 fn replace_global_form(&self, global_form: Handle<GlobalEdge>) -> HalfEdge {
26 HalfEdge::new(
27 self.curve(),
28 self.boundary(),
29 self.start_vertex().clone(),
30 global_form,
31 )
32 }
33}