1 / 5

Planar Subdivision

Walk around a face. Access one face from an adjacent one via a common edge. . Visit all the edges adjacent to a vertex. Planar Subdivision. Induced by planar embedding of a graph. Connected if the underlying graph is. . edge. Complexity = #vertices + #edges + #faces. vertex. face f.

virote
Download Presentation

Planar Subdivision

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Walk around a face. Access one face from an adjacent one via a common edge. Visit all the edges adjacent to a vertex. Planar Subdivision Induced by planar embedding of a graph. Connectedif the underlying graph is. edge Complexity = #vertices + #edges + #faces vertex face f Typical operations: hole in f disconnected subdivision

  2. a pointer to the next edge a pointer to the previous edge Doubly-Connected Edge List Stores geometric and topological information. To walk around a face (counterclockwise), we set up Every edge has two distinct half-edges (twins) in opposite directions. Edge e has originv and destinationw. Edge Twin(e) has origin w and destination v. f Next(e) For each face f store one pointer to an arbitrary half-edge bounding the face. Prev(e) e w v From that half-edge traverse the face counterclockwise through the next pointer. Twin(e) This seems good if there’s no hole …

  3. Holes Edges on the boundary of a hole are traversed in clockwise order so that the face still lies to the left. A face always lies to the left of any half-edge on its boundary. hole To traverse the face, we need a pointer to a half-edge in every boundary component. And a pointer to every isolated vertex in the face. isolated vertex

  4. Every vertex v Every face f Every edge e Origin(e) Coordinates(v) Prev(e) Next(e) Twin(e) InnerComponents(f) – a list of pointers, each to some half-edge on the boundary of a different hole in the face. OuterComponent(f) – pointer to some half-edge on outer boundary. Summary on DCE List // O(1) information IncidentEdge(v) – pointer to an arbitrary half-edge originated from v. // information depends on # inner components. // any edge is pointed to at most once from the list // InnerComponents. // O(1) information total storage: O(#vertices + #edges + #faces) i.e.linear in subdivision complexity.

  5. An Example face Outercomponent InnerComponents nil nil half-edge origin Twin IncidentFace Next Prev vertex Coordinates IncidentEdge (0,4) (2,4) (2,2) (1,1)

More Related