pub struct Dcel<VW, HEW = (), FW = (), VC = Vec<Vertex<VW>>, HEC = Vec<HalfEdge<HEW>>, FC = Vec<Face<FW>>> { /* private fields */ }Implementations§
Source§impl<VW, HEW, FW, VC: Get<usize, Item = Vertex<VW>>, HEC, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC: Get<usize, Item = Vertex<VW>>, HEC, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn outgoing_next_half_edge(&self, vertex: VertexId) -> HalfEdgeId
Source§impl<VW, HEW, FW, VC: Get<usize, Item = Vertex<VW>>, HEC: Get<usize, Item = HalfEdge<HEW>>, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC: Get<usize, Item = Vertex<VW>>, HEC: Get<usize, Item = HalfEdge<HEW>>, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn incoming_next_half_edge(&self, vertex: VertexId) -> HalfEdgeId
pub fn vertex_next_edge(&self, vertex: VertexId) -> EdgeId
pub fn incoming_prev_half_edge(&self, vertex: VertexId) -> HalfEdgeId
pub fn outgoing_prev_half_edge(&self, vertex: VertexId) -> HalfEdgeId
pub fn vertex_prev_edge(&self, vertex: VertexId) -> EdgeId
Source§impl<VW, HEW, FW, VC: Get<usize, Item = Vertex<VW>>, HEC, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC: Get<usize, Item = Vertex<VW>>, HEC, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn vertex_weight(&self, vertex: VertexId) -> &VW
Source§impl<VW, HEW, FW, VC, HEC: Get<usize, Item = HalfEdge<HEW>>, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC, HEC: Get<usize, Item = HalfEdge<HEW>>, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn origin(&self, half_edge: HalfEdgeId) -> VertexId
pub fn endpoints(&self, edge: EdgeId) -> (VertexId, VertexId)
pub fn twin(&self, half_edge: HalfEdgeId) -> HalfEdgeId
pub fn full_edge(&self, half_edge: HalfEdgeId) -> EdgeId
pub fn face_in_front(&self, half_edge: HalfEdgeId) -> FaceId
pub fn face_behind(&self, half_edge: HalfEdgeId) -> FaceId
pub fn edge_faces(&self, edge: EdgeId) -> (FaceId, FaceId)
pub fn prev_half_edge(&self, half_edge: HalfEdgeId) -> HalfEdgeId
pub fn next_half_edge(&self, half_edge: HalfEdgeId) -> HalfEdgeId
pub fn prev_edge(&self, edge: EdgeId) -> EdgeId
pub fn next_edge(&self, edge: EdgeId) -> EdgeId
pub fn turn_half_edge(&self, half_edge: HalfEdgeId) -> HalfEdgeId
pub fn turn_back_half_edge(&self, half_edge: HalfEdgeId) -> HalfEdgeId
pub fn turn_edge(&self, edge: EdgeId) -> EdgeId
pub fn turn_back_edge(&self, edge: EdgeId) -> EdgeId
pub fn half_edge_weight(&self, half_edge: HalfEdgeId) -> &HEW
pub fn edge_weights(&self, edge: EdgeId) -> (&HEW, &HEW)
Source§impl<VW, HEW, FW, VC, HEC, FC: Get<usize, Item = Face<FW>>> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC, HEC, FC: Get<usize, Item = Face<FW>>> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn incident_half_edge(&self, face: FaceId) -> Option<HalfEdgeId>
pub fn face_weight(&self, face: FaceId) -> &FW
Source§impl<VW, HEW, FW, VC, HEC, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC, HEC, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
Sourcepub fn unbounded_face(&self) -> FaceId
pub fn unbounded_face(&self) -> FaceId
Returns the id of the unbounded face.
The unbounded face is always the first element of the face list.
Source§impl<VW: Clone + Eq + Hash, HEW: Clone + Default, FW: Clone + Default, VC: Get<usize, Item = Vertex<VW>> + Insert<usize> + Push<usize>, HEC: Get<usize, Item = HalfEdge<HEW>> + Insert<usize> + Push<usize>, FC: Get<usize, Item = Face<FW>> + Insert<usize> + Push<usize>> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW: Clone + Eq + Hash, HEW: Clone + Default, FW: Clone + Default, VC: Get<usize, Item = Vertex<VW>> + Insert<usize> + Push<usize>, HEC: Get<usize, Item = HalfEdge<HEW>> + Insert<usize> + Push<usize>, FC: Get<usize, Item = Face<FW>> + Insert<usize> + Push<usize>> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn insert_mesh( &mut self, face_polygons: impl IntoIterator<Item = impl IntoIterator<Item = VW>>, )
pub fn insert_mesh_in_face( &mut self, face_polygons: impl IntoIterator<Item = impl IntoIterator<Item = VW>>, )
Source§impl<VW: Clone, HEW: Clone + Default, FW: Clone + Default, VC: Get<usize, Item = Vertex<VW>> + Insert<usize> + Push<usize>, HEC: Get<usize, Item = HalfEdge<HEW>> + Insert<usize> + Push<usize>, FC: Get<usize, Item = Face<FW>> + Insert<usize> + Push<usize>> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW: Clone, HEW: Clone + Default, FW: Clone + Default, VC: Get<usize, Item = Vertex<VW>> + Insert<usize> + Push<usize>, HEC: Get<usize, Item = HalfEdge<HEW>> + Insert<usize> + Push<usize>, FC: Get<usize, Item = Face<FW>> + Insert<usize> + Push<usize>> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn insert_polygon( &mut self, vertex_weights: impl IntoIterator<Item = VW>, ) -> FaceId
pub fn insert_polygon_in_face( &mut self, outer_face: FaceId, vertexes_weights: impl IntoIterator<Item = VW>, ) -> FaceId
Source§impl<VW: Clone, HEW: Clone, FW: Clone, VC: Get<usize, Item = Vertex<VW>> + Insert<usize> + Push<usize>, HEC: Get<usize, Item = HalfEdge<HEW>> + Insert<usize> + Push<usize>, FC: Get<usize, Item = Face<FW>> + Insert<usize> + Push<usize>> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW: Clone, HEW: Clone, FW: Clone, VC: Get<usize, Item = Vertex<VW>> + Insert<usize> + Push<usize>, HEC: Get<usize, Item = HalfEdge<HEW>> + Insert<usize> + Push<usize>, FC: Get<usize, Item = Face<FW>> + Insert<usize> + Push<usize>> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn insert_polygon_with_all_weights( &mut self, vertex_weights: impl IntoIterator<Item = VW>, edge_weights: impl IntoIterator<Item = (HEW, HEW)>, face_weight: FW, )
pub fn insert_polygon_in_face_with_all_weights( &mut self, outer_face: FaceId, vertex_weights: impl IntoIterator<Item = VW>, edge_weights: impl IntoIterator<Item = (HEW, HEW)>, face_weight: FW, ) -> FaceId
Source§impl<VW, HEW, FW, VC, HEC: Get<usize, Item = HalfEdge<HEW>>, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC, HEC: Get<usize, Item = HalfEdge<HEW>>, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn circulate_vertexes_with_excludes( &self, initial_half_edge: HalfEdgeId, excluded_vertexes: impl IntoIterator<Item = VertexId>, ) -> CirculateVertexesWithExcludesIter<'_, VW, HEW, FW, VC, HEC, FC>
pub fn circulate_vertexes_with_excludes_reverse( &self, initial_half_edge: HalfEdgeId, excluded_vertexes: impl IntoIterator<Item = VertexId>, ) -> CirculateVertexesWithExcludesReverseIter<'_, VW, HEW, FW, VC, HEC, FC>
Source§impl<VW, HEW, FW, VC: Get<usize, Item = Vertex<VW>>, HEC: Get<usize, Item = HalfEdge<HEW>>, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC: Get<usize, Item = Vertex<VW>>, HEC: Get<usize, Item = HalfEdge<HEW>>, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn vertex_rim_vertexes( &self, vertex: VertexId, ) -> CirculateVertexesWithExcludesIter<'_, VW, HEW, FW, VC, HEC, FC>
pub fn vertex_rim_vertexes_reverse( &self, vertex: VertexId, ) -> CirculateVertexesWithExcludesReverseIter<'_, VW, HEW, FW, VC, HEC, FC>
Source§impl<VW, HEW, FW, VC: Get<usize, Item = Vertex<VW>>, HEC, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC: Get<usize, Item = Vertex<VW>>, HEC, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn vertex_half_spokes( &self, vertex: VertexId, ) -> HalfSpokesIter<'_, VW, HEW, FW, VC, HEC, FC> ⓘ
pub fn vertex_half_spokes_reverse( &self, vertex: VertexId, ) -> HalfSpokesReverseIter<'_, VW, HEW, FW, VC, HEC, FC> ⓘ
Source§impl<VW, HEW, FW, VC: Get<usize, Item = Vertex<VW>>, HEC: Get<usize, Item = HalfEdge<HEW>>, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC: Get<usize, Item = Vertex<VW>>, HEC: Get<usize, Item = HalfEdge<HEW>>, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn vertex_rim_half_edges( &self, vertex: VertexId, ) -> CirculateHalfEdgesWithExcludesIter<'_, VW, HEW, FW, VC, HEC, FC>
pub fn vertex_rim_half_edges_reverse( &self, vertex: VertexId, ) -> CirculateHalfEdgesWithExcludesReverseIter<'_, VW, HEW, FW, VC, HEC, FC>
Source§impl<VW, HEW, FW, VC, HEC, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC, HEC, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn half_spokes( &self, initial_half_edge: HalfEdgeId, ) -> HalfSpokesIter<'_, VW, HEW, FW, VC, HEC, FC> ⓘ
pub fn half_spokes_reverse( &self, initial_half_edge: HalfEdgeId, ) -> HalfSpokesReverseIter<'_, VW, HEW, FW, VC, HEC, FC> ⓘ
Source§impl<VW, HEW, FW, VC: Get<usize, Item = Vertex<VW>>, HEC: Get<usize, Item = HalfEdge<HEW>>, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC: Get<usize, Item = Vertex<VW>>, HEC: Get<usize, Item = HalfEdge<HEW>>, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn vertex_spokes( &self, vertex: VertexId, ) -> SpokesIter<'_, VW, HEW, FW, VC, HEC, FC> ⓘ
pub fn vertex_spokes_reverse( &self, vertex: VertexId, ) -> SpokesReverseIter<'_, VW, HEW, FW, VC, HEC, FC> ⓘ
Source§impl<VW, HEW, FW, VC: Get<usize, Item = Vertex<VW>>, HEC: Get<usize, Item = HalfEdge<HEW>>, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC: Get<usize, Item = Vertex<VW>>, HEC: Get<usize, Item = HalfEdge<HEW>>, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn vertex_rim_edges( &self, vertex: VertexId, ) -> CirculateEdgesWithExcludesIter<'_, VW, HEW, FW, VC, HEC, FC>
pub fn vertex_rim_edges_reverse( &self, vertex: VertexId, ) -> CirculateEdgesWithExcludesReverseIter<'_, VW, HEW, FW, VC, HEC, FC>
Source§impl<VW, HEW, FW, VC, HEC: Get<usize, Item = HalfEdge<HEW>>, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC, HEC: Get<usize, Item = HalfEdge<HEW>>, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn spokes( &self, initial_edge: EdgeId, ) -> SpokesIter<'_, VW, HEW, FW, VC, HEC, FC> ⓘ
pub fn spokes_reverse( &self, initial_edge: EdgeId, ) -> SpokesReverseIter<'_, VW, HEW, FW, VC, HEC, FC> ⓘ
pub fn interspokes( &self, initial_half_edge: HalfEdgeId, ) -> InterspokesIter<'_, VW, HEW, FW, VC, HEC, FC>
pub fn interspokes_reverse( &self, initial_half_edge: HalfEdgeId, ) -> InterspokesReverseIter<'_, VW, HEW, FW, VC, HEC, FC>
Source§impl<VW, HEW, FW, VC, HEC: Get<usize, Item = HalfEdge<HEW>>, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC, HEC: Get<usize, Item = HalfEdge<HEW>>, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn circulate_half_edges_with_excludes( &self, initial_half_edge: HalfEdgeId, excluded_half_edges: impl IntoIterator<Item = HalfEdgeId>, ) -> CirculateHalfEdgesWithExcludesIter<'_, VW, HEW, FW, VC, HEC, FC>
pub fn circulate_half_edges_with_excludes_reverse( &self, initial_half_edge: HalfEdgeId, excluded_half_edges: impl IntoIterator<Item = HalfEdgeId>, ) -> CirculateHalfEdgesWithExcludesReverseIter<'_, VW, HEW, FW, VC, HEC, FC>
pub fn circulate_edges_with_excludes( &self, initial_edge: EdgeId, excluded_edges: impl IntoIterator<Item = EdgeId>, ) -> CirculateEdgesWithExcludesIter<'_, VW, HEW, FW, VC, HEC, FC>
pub fn circulate_edges_with_excludes_reverse( &self, initial_edge: EdgeId, excluded_edges: impl IntoIterator<Item = EdgeId>, ) -> CirculateEdgesWithExcludesReverseIter<'_, VW, HEW, FW, VC, HEC, FC>
Source§impl<VW, HEW, FW, VC: Get<usize, Item = Vertex<VW>>, HEC: Get<usize, Item = HalfEdge<HEW>>, FC: Get<usize, Item = Face<FW>>> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC: Get<usize, Item = Vertex<VW>>, HEC: Get<usize, Item = HalfEdge<HEW>>, FC: Get<usize, Item = Face<FW>>> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn face_vertexes( &self, face: FaceId, ) -> FaceVertexesIter<'_, VW, HEW, FW, VC, HEC, FC>
pub fn face_vertexes_reverse( &self, face: FaceId, ) -> FaceVertexesReverseIter<'_, VW, HEW, FW, VC, HEC, FC>
Source§impl<VW, HEW, FW, VC, HEC, FC: Get<usize, Item = Face<FW>>> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC, HEC, FC: Get<usize, Item = Face<FW>>> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn face_half_edges( &self, face: FaceId, ) -> FaceHalfEdgesIter<'_, VW, HEW, FW, VC, HEC, FC> ⓘ
pub fn face_half_edges_reverse( &self, face: FaceId, ) -> FaceHalfEdgesReverseIter<'_, VW, HEW, FW, VC, HEC, FC>
Source§impl<VW, HEW, FW, VC, HEC: Get<usize, Item = HalfEdge<HEW>>, FC: Get<usize, Item = Face<FW>>> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC, HEC: Get<usize, Item = HalfEdge<HEW>>, FC: Get<usize, Item = Face<FW>>> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn face_edges( &self, face: FaceId, ) -> FaceEdgesIter<'_, VW, HEW, FW, VC, HEC, FC> ⓘ
pub fn face_edges_reverse( &self, face: FaceId, ) -> FaceEdgesReverseIter<'_, VW, HEW, FW, VC, HEC, FC>
Source§impl<VW: Clone, HEW: Clone, FW: Clone, VC: Get<usize, Item = Vertex<VW>> + Insert<usize> + Remove<usize>, HEC: Get<usize, Item = HalfEdge<HEW>> + Insert<usize> + Remove<usize>, FC: Get<usize, Item = Face<FW>> + Insert<usize> + Remove<usize>> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW: Clone, HEW: Clone, FW: Clone, VC: Get<usize, Item = Vertex<VW>> + Insert<usize> + Remove<usize>, HEC: Get<usize, Item = HalfEdge<HEW>> + Insert<usize> + Remove<usize>, FC: Get<usize, Item = Face<FW>> + Insert<usize> + Remove<usize>> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn merge_faces_around_vertex(&mut self, inner_vertex: VertexId)
pub fn absorb_faces_around_vertex( &mut self, absorbing_face: FaceId, inner_vertex: VertexId, )
Source§impl<VW: Copy + Eq, HEW: Clone, FW: Clone, VC: Get<usize, Item = Vertex<VW>> + Insert<usize> + Remove<usize>, HEC: Get<usize, Item = HalfEdge<HEW>> + Insert<usize> + Remove<usize>, FC: Get<usize, Item = Face<FW>> + Insert<usize> + Remove<usize>> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW: Copy + Eq, HEW: Clone, FW: Clone, VC: Get<usize, Item = Vertex<VW>> + Insert<usize> + Remove<usize>, HEC: Get<usize, Item = HalfEdge<HEW>> + Insert<usize> + Remove<usize>, FC: Get<usize, Item = Face<FW>> + Insert<usize> + Remove<usize>> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn merge_faces(&mut self, faces: impl IntoIterator<Item = FaceId>)
pub fn merge_faces_over_edges_and_vertexes( &mut self, faces: impl IntoIterator<Item = FaceId>, edges: impl IntoIterator<Item = EdgeId>, vertexes: impl IntoIterator<Item = VertexId>, )
pub fn absorb_faces( &mut self, absorbing_face: FaceId, faces: impl IntoIterator<Item = FaceId>, )
pub fn absorb_faces_over_edges_and_vertexes( &mut self, absorbing_face: FaceId, faces: impl IntoIterator<Item = FaceId>, edges: impl IntoIterator<Item = EdgeId>, vertexes: impl IntoIterator<Item = VertexId>, )
Source§impl<VW: Clone, HEW: Clone + Default, FW: Clone + Default, VC: Get<usize, Item = Vertex<VW>> + Insert<usize> + Push<usize>, HEC: Get<usize, Item = HalfEdge<HEW>> + Insert<usize> + Push<usize>, FC: Get<usize, Item = Face<FW>> + Insert<usize> + Push<usize>> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW: Clone, HEW: Clone + Default, FW: Clone + Default, VC: Get<usize, Item = Vertex<VW>> + Insert<usize> + Push<usize>, HEC: Get<usize, Item = HalfEdge<HEW>> + Insert<usize> + Push<usize>, FC: Get<usize, Item = Face<FW>> + Insert<usize> + Push<usize>> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn split_face_by_edge_chain( &mut self, from: VertexId, to: VertexId, vertex_weights: impl IntoIterator<Item = VW>, split_face: FaceId, )
Source§impl<VW: Clone, HEW: Clone, FW: Clone, VC: Get<usize, Item = Vertex<VW>> + Insert<usize> + Push<usize>, HEC: Get<usize, Item = HalfEdge<HEW>> + Insert<usize> + Push<usize>, FC: Get<usize, Item = Face<FW>> + Insert<usize> + Push<usize>> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW: Clone, HEW: Clone, FW: Clone, VC: Get<usize, Item = Vertex<VW>> + Insert<usize> + Push<usize>, HEC: Get<usize, Item = HalfEdge<HEW>> + Insert<usize> + Push<usize>, FC: Get<usize, Item = Face<FW>> + Insert<usize> + Push<usize>> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn split_face_by_edge_chain_with_all_weights( &mut self, from: VertexId, to: VertexId, vertex_weights: impl IntoIterator<Item = VW>, edge_weights: impl IntoIterator<Item = (HEW, HEW)>, split_face: FaceId, new_face_weight: FW, )
Source§impl<VW: Clone, HEW: Clone + Default, FW: Clone + Default, VC: Get<usize, Item = Vertex<VW>> + Insert<usize> + Push<usize>, HEC: Get<usize, Item = HalfEdge<HEW>> + Insert<usize> + Push<usize>, FC: Get<usize, Item = Face<FW>> + Insert<usize> + Push<usize>> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW: Clone, HEW: Clone + Default, FW: Clone + Default, VC: Get<usize, Item = Vertex<VW>> + Insert<usize> + Push<usize>, HEC: Get<usize, Item = HalfEdge<HEW>> + Insert<usize> + Push<usize>, FC: Get<usize, Item = Face<FW>> + Insert<usize> + Push<usize>> Dcel<VW, HEW, FW, VC, HEC, FC>
Sourcepub fn triangulate_around_vertex(
&mut self,
perimeter_face: FaceId,
inner_vertex_weight: VW,
)
pub fn triangulate_around_vertex( &mut self, perimeter_face: FaceId, inner_vertex_weight: VW, )
Partition a face into triangles by inserting a vertex inside and then adding edges between it and the original face’s vertexes.
The original face is reused for the first triangle. New faces are created for all the other triangles.
Returns the new vertex id together with the face ids of all the new triangles.
pub fn fan_triangulate(&mut self, perimeter_face: FaceId, apex: VertexId)
Source§impl<VW: Clone, HEW: Clone, FW: Clone, VC: Get<usize, Item = Vertex<VW>> + Insert<usize> + Push<usize>, HEC: Get<usize, Item = HalfEdge<HEW>> + Insert<usize> + Push<usize>, FC: Get<usize, Item = Face<FW>> + Insert<usize> + Push<usize>> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW: Clone, HEW: Clone, FW: Clone, VC: Get<usize, Item = Vertex<VW>> + Insert<usize> + Push<usize>, HEC: Get<usize, Item = HalfEdge<HEW>> + Insert<usize> + Push<usize>, FC: Get<usize, Item = Face<FW>> + Insert<usize> + Push<usize>> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn triangulate_around_vertex_with_all_weights( &mut self, perimeter_face: FaceId, inner_vertex_weight: VW, inner_edge_weights: impl IntoIterator<Item = (HEW, HEW)>, triangle_face_weights: impl IntoIterator<Item = FW>, )
pub fn fan_triangulate_with_all_weights( &mut self, perimeter_face: FaceId, apex: VertexId, inner_edge_weights: impl IntoIterator<Item = (HEW, HEW)>, triangle_face_weights: impl IntoIterator<Item = FW>, )
Source§impl<VW, HEW, FW: Default, VC: Default, HEC: Default, FC: Default + Push<usize, Item = Face<FW>>> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW: Default, VC: Default, HEC: Default, FC: Default + Push<usize, Item = Face<FW>>> Dcel<VW, HEW, FW, VC, HEC, FC>
Source§impl<VW, HEW, FW, VC, HEC, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC, HEC, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn from_collections(vertexes: VC, half_edges: HEC, faces: FC) -> Self
Source§impl<VW, HEW, FW, VC, HEC, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC, HEC, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn vertex_ids(&self) -> impl Iterator<Item = VertexId>
Source§impl<VW, HEW, FW, VC, HEC, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC, HEC, FC> Dcel<VW, HEW, FW, VC, HEC, FC>
pub fn half_edge_ids(&self) -> impl Iterator<Item = HalfEdgeId>
Trait Implementations§
Source§impl<VW: Clone, HEW: Clone, FW: Clone, VC: Clone, HEC: Clone, FC: Clone> Clone for Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW: Clone, HEW: Clone, FW: Clone, VC: Clone, HEC: Clone, FC: Clone> Clone for Dcel<VW, HEW, FW, VC, HEC, FC>
Auto Trait Implementations§
impl<VW, HEW, FW, VC, HEC, FC> Freeze for Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC, HEC, FC> RefUnwindSafe for Dcel<VW, HEW, FW, VC, HEC, FC>where
VC: RefUnwindSafe,
HEC: RefUnwindSafe,
FC: RefUnwindSafe,
VW: RefUnwindSafe,
HEW: RefUnwindSafe,
FW: RefUnwindSafe,
impl<VW, HEW, FW, VC, HEC, FC> Send for Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC, HEC, FC> Sync for Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC, HEC, FC> Unpin for Dcel<VW, HEW, FW, VC, HEC, FC>
impl<VW, HEW, FW, VC, HEC, FC> UnwindSafe for Dcel<VW, HEW, FW, VC, HEC, FC>where
VC: UnwindSafe,
HEC: UnwindSafe,
FC: UnwindSafe,
VW: UnwindSafe,
HEW: UnwindSafe,
FW: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more