Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations based on Exact Arithmetic
Günther Eder, Martin Held, and Peter Palfrader
Straight Skeleton Implementations Computational Geometry and - - PowerPoint PPT Presentation
UNIVERSITY OF SALZBURG Straight Skeleton Implementations Computational Geometry and Applications Lab based on Exact Arithmetic Gnther Eder, Martin Held, and Peter Palfrader Online Conference, March 2020 Straight Skeleton UNIVERSITY OF
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Günther Eder, Martin Held, and Peter Palfrader
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 2/10
r Defined as a result of a wavefront propagation. r The Straight Skeleton is the trace of the vertices of the wavefront over time. r Edge Events, Split Events. r Applications: Tool path generation
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 2/10
r Defined as a result of a wavefront propagation. r The Straight Skeleton is the trace of the vertices of the wavefront over time. r Edge Events, Split Events. r Applications: Tool path generation
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 2/10
r Defined as a result of a wavefront propagation. r The Straight Skeleton is the trace of the vertices of the wavefront over time. r Edge Events, Split Events. r Applications: Tool path generation
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 2/10
r Defined as a result of a wavefront propagation. r The Straight Skeleton is the trace of the vertices of the wavefront over time. r Edge Events, Split Events. r Applications: Tool path generation
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 2/10
r Defined as a result of a wavefront propagation. r The Straight Skeleton is the trace of the vertices of the wavefront over time. r Edge Events, Split Events. r Applications: Tool path generation
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 2/10
r Defined as a result of a wavefront propagation. r The Straight Skeleton is the trace of the vertices of the wavefront over time. r Edge Events, Split Events. r Applications: Tool path generation
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 2/10
r Defined as a result of a wavefront propagation. r The Straight Skeleton is the trace of the vertices of the wavefront over time. r Edge Events, Split Events. r Applications: Tool path generation
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 2/10
r Defined as a result of a wavefront propagation. r The Straight Skeleton is the trace of the vertices of the wavefront over time. r Edge Events, Split Events. r Applications: Tool path generation
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 2/10
r Defined as a result of a wavefront propagation. r The Straight Skeleton is the trace of the vertices of the wavefront over time. r Edge Events, Split Events. r Applications: Tool path generation
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 2/10
r Defined as a result of a wavefront propagation. r The Straight Skeleton is the trace of the vertices of the wavefront over time. r Edge Events, Split Events. r Applications: Tool path generation
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 2/10
r Defined as a result of a wavefront propagation. r The Straight Skeleton is the trace of the vertices of the wavefront over time. r Edge Events, Split Events. r Applications: Tool path generation
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 2/10
r Defined as a result of a wavefront propagation. r The Straight Skeleton is the trace of the vertices of the wavefront over time. r Edge Events, Split Events. r Applications: Tool path generation
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 2/10
edge events
r Defined as a result of a wavefront propagation. r The Straight Skeleton is the trace of the vertices of the wavefront over time. r Edge Events, Split Events. r Applications: Tool path generation
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 2/10
edge events
r Defined as a result of a wavefront propagation. r The Straight Skeleton is the trace of the vertices of the wavefront over time. r Edge Events, Split Events. r Applications: Tool path generation
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 2/10
split event
r Defined as a result of a wavefront propagation. r The Straight Skeleton is the trace of the vertices of the wavefront over time. r Edge Events, Split Events. r Applications: Tool path generation
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 2/10
r Defined as a result of a wavefront propagation. r The Straight Skeleton is the trace of the vertices of the wavefront over time. r Edge Events, Split Events. r Applications: Tool path generation
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 2/10
r Defined as a result of a wavefront propagation. r The Straight Skeleton is the trace of the vertices of the wavefront over time. r Edge Events, Split Events. r Applications: Tool path generation, Roof modeling
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 2/10
r Defined as a result of a wavefront propagation. r The Straight Skeleton is the trace of the vertices of the wavefront over time. r Edge Events, Split Events. r Applications: Tool path generation, Roof modeling, Origami.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 3/10
Best worst-case complexity: r Eppstein and Erickson (1998) and Cheng et al. (2016). With implementations: r Cacciola (2004), based on Felkel and Obdržálek (1998). r Aichholzer and Aurenhammer (1998)∗. r For monotone polygons: Biedl et al. (2015)∗.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 3/10
Best worst-case complexity: r Eppstein and Erickson (1998) and Cheng et al. (2016). With implementations: r Cacciola (2004), based on Felkel and Obdržálek (1998). r Aichholzer and Aurenhammer (1998)∗. r For monotone polygons: Biedl et al. (2015)∗.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 3/10
Best worst-case complexity: r Eppstein and Erickson (1998) and Cheng et al. (2016). With implementations: r Cacciola (2004), based on Felkel and Obdržálek (1998). r Aichholzer and Aurenhammer (1998)∗. r For monotone polygons: Biedl et al. (2015)∗.
∗ New implementation!
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 3/10
Best worst-case complexity: r Eppstein and Erickson (1998) and Cheng et al. (2016). With implementations: r Cacciola (2004), based on Felkel and Obdržálek (1998). r Aichholzer and Aurenhammer (1998)∗. r For monotone polygons: Biedl et al. (2015)∗.
∗ New implementation!
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 4/10
r Part of CGAL. r Input: polygons and polygons with holes. r Priority queue of edge events and all potential split events. r There are quadratic many such potential split events.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 4/10
r Part of CGAL. r Input: polygons and polygons with holes. r Priority queue of edge events and all potential split events. r There are quadratic many such potential split events.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 4/10
edge events
r Part of CGAL. r Input: polygons and polygons with holes. r Priority queue of edge events and all potential split events. r There are quadratic many such potential split events.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 4/10
split event edge events
r Part of CGAL. r Input: polygons and polygons with holes. r Priority queue of edge events and all potential split events. r There are quadratic many such potential split events.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 4/10
split event edge events
r Part of CGAL. r Input: polygons and polygons with holes. r Priority queue of edge events and all potential split events. r There are quadratic many such potential split events.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 5/10
r Input: (strictly) monotone polygons. r Key Observation: A monotone chain never splits. r Idea: Compute the straight skeleton of two chains, then merge them. r Runtime: O(n log n). r New implementation: Monos. r Also works on not-strictly monotone polygons (tricky in the merge step).
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 5/10
r Input: (strictly) monotone polygons. r Key Observation: A monotone chain never splits. r Idea: Compute the straight skeleton of two chains, then merge them. r Runtime: O(n log n). r New implementation: Monos. r Also works on not-strictly monotone polygons (tricky in the merge step).
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 5/10
r Input: (strictly) monotone polygons. r Key Observation: A monotone chain never splits. r Idea: Compute the straight skeleton of two chains, then merge them. r Runtime: O(n log n). r New implementation: Monos. r Also works on not-strictly monotone polygons (tricky in the merge step).
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 5/10
r Input: (strictly) monotone polygons. r Key Observation: A monotone chain never splits. r Idea: Compute the straight skeleton of two chains, then merge them. r Runtime: O(n log n). r New implementation: Monos. r Also works on not-strictly monotone polygons (tricky in the merge step).
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 5/10
r Input: (strictly) monotone polygons. r Key Observation: A monotone chain never splits. r Idea: Compute the straight skeleton of two chains, then merge them. r Runtime: O(n log n). r New implementation: Monos. r Also works on not-strictly monotone polygons (tricky in the merge step).
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 5/10
r Input: (strictly) monotone polygons. r Key Observation: A monotone chain never splits. r Idea: Compute the straight skeleton of two chains, then merge them. r Runtime: O(n log n). r New implementation: Monos. r Also works on not-strictly monotone polygons (tricky in the merge step).
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 5/10
r Input: (strictly) monotone polygons. r Key Observation: A monotone chain never splits. r Idea: Compute the straight skeleton of two chains, then merge them. r Runtime: O(n log n). r New implementation: Monos. r Also works on not-strictly monotone polygons (tricky in the merge step).
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 5/10
r Input: (strictly) monotone polygons. r Key Observation: A monotone chain never splits. r Idea: Compute the straight skeleton of two chains, then merge them. r Runtime: O(n log n). r New implementation: Monos. r Also works on not-strictly monotone polygons (tricky in the merge step).
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 5/10
r Input: (strictly) monotone polygons. r Key Observation: A monotone chain never splits. r Idea: Compute the straight skeleton of two chains, then merge them. r Runtime: O(n log n). r New implementation: Monos. r Also works on not-strictly monotone polygons (tricky in the merge step).
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 6/10
r Input: PSLGs. Can compute the weighted straight skeleton. r Uses a kinetic data structure to witness events: Triangulate the not-yet-swept plane; triangles witness events. r There are only linear many real events. However, there might be O(n3) flip events. r New implementation: Surfer2. r Several special cases not considered in the original paper.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 6/10
r Input: PSLGs. Can compute the weighted straight skeleton. r Uses a kinetic data structure to witness events: Triangulate the not-yet-swept plane; triangles witness events. r There are only linear many real events. However, there might be O(n3) flip events. r New implementation: Surfer2. r Several special cases not considered in the original paper.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 6/10
r Input: PSLGs. Can compute the weighted straight skeleton. r Uses a kinetic data structure to witness events: Triangulate the not-yet-swept plane; triangles witness events. r There are only linear many real events. However, there might be O(n3) flip events. r New implementation: Surfer2. r Several special cases not considered in the original paper.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 6/10
r Input: PSLGs. Can compute the weighted straight skeleton. r Uses a kinetic data structure to witness events: Triangulate the not-yet-swept plane; triangles witness events. r There are only linear many real events. However, there might be O(n3) flip events. r New implementation: Surfer2. r Several special cases not considered in the original paper.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 6/10
r Input: PSLGs. Can compute the weighted straight skeleton. r Uses a kinetic data structure to witness events: Triangulate the not-yet-swept plane; triangles witness events. r There are only linear many real events. However, there might be O(n3) flip events. r New implementation: Surfer2. r Several special cases not considered in the original paper.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 6/10
r Input: PSLGs. Can compute the weighted straight skeleton. r Uses a kinetic data structure to witness events: Triangulate the not-yet-swept plane; triangles witness events. r There are only linear many real events. However, there might be O(n3) flip events. r New implementation: Surfer2. r Several special cases not considered in the original paper.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 6/10
r Input: PSLGs. Can compute the weighted straight skeleton. r Uses a kinetic data structure to witness events: Triangulate the not-yet-swept plane; triangles witness events. r There are only linear many real events. However, there might be O(n3) flip events. r New implementation: Surfer2. r Several special cases not considered in the original paper.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 6/10
r Input: PSLGs. Can compute the weighted straight skeleton. r Uses a kinetic data structure to witness events: Triangulate the not-yet-swept plane; triangles witness events. r There are only linear many real events. However, there might be O(n3) flip events. r New implementation: Surfer2. r Several special cases not considered in the original paper.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 6/10
r Input: PSLGs. Can compute the weighted straight skeleton. r Uses a kinetic data structure to witness events: Triangulate the not-yet-swept plane; triangles witness events. r There are only linear many real events. However, there might be O(n3) flip events. r New implementation: Surfer2. r Several special cases not considered in the original paper.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 6/10
r Input: PSLGs. Can compute the weighted straight skeleton. r Uses a kinetic data structure to witness events: Triangulate the not-yet-swept plane; triangles witness events. r There are only linear many real events. However, there might be O(n3) flip events. r New implementation: Surfer2. r Several special cases not considered in the original paper.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 6/10
r Input: PSLGs. Can compute the weighted straight skeleton. r Uses a kinetic data structure to witness events: Triangulate the not-yet-swept plane; triangles witness events. r There are only linear many real events. However, there might be O(n3) flip events. r New implementation: Surfer2. r Several special cases not considered in the original paper.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 6/10
r Input: PSLGs. Can compute the weighted straight skeleton. r Uses a kinetic data structure to witness events: Triangulate the not-yet-swept plane; triangles witness events. r There are only linear many real events. However, there might be O(n3) flip events. r New implementation: Surfer2. r Several special cases not considered in the original paper.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 6/10
r Input: PSLGs. Can compute the weighted straight skeleton. r Uses a kinetic data structure to witness events: Triangulate the not-yet-swept plane; triangles witness events. r There are only linear many real events. However, there might be O(n3) flip events. r New implementation: Surfer2. r Several special cases not considered in the original paper.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 6/10
r Input: PSLGs. Can compute the weighted straight skeleton. r Uses a kinetic data structure to witness events: Triangulate the not-yet-swept plane; triangles witness events. r There are only linear many real events. However, there might be O(n3) flip events. r New implementation: Surfer2. r Several special cases not considered in the original paper.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 6/10
r Input: PSLGs. Can compute the weighted straight skeleton. r Uses a kinetic data structure to witness events: Triangulate the not-yet-swept plane; triangles witness events. r There are only linear many real events. However, there might be O(n3) flip events. r New implementation: Surfer2. r Several special cases not considered in the original paper.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 6/10
r Input: PSLGs. Can compute the weighted straight skeleton. r Uses a kinetic data structure to witness events: Triangulate the not-yet-swept plane; triangles witness events. r There are only linear many real events. However, there might be O(n3) flip events. r New implementation: Surfer2. r Several special cases not considered in the original paper.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 6/10
r Input: PSLGs. Can compute the weighted straight skeleton. r Uses a kinetic data structure to witness events: Triangulate the not-yet-swept plane; triangles witness events. r There are only linear many real events. However, there might be O(n3) flip events. r New implementation: Surfer2. r Several special cases not considered in the original paper.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
p Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 7/10
Some Special Cases r Flip-event Loops. r Vertices meeting along triangulation edges. r Wavefront edges moving into each other. r Collinear wavefront segments of different speeds becoming adjacent. Implementation Considerations r Event classification: Where possible, rely on combinatorial/discrete information instead of doing computations on reals.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 8/10
10−2 10−1 100 101 102 103 102 103 104 105
# Vertices Runtime [s]
Surfer2 (plane) Surfer2 (interior−only) Surfer2 (plane, IEEE 754)
103 104 102 103 104 105
# Vertices Memory Use [MiB]
Surfer2 (plane) Surfer2 (interior−only) Monos Surfer2 (plane, IEEE 754)
CGAL v. Surfer2
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 8/10
102 103 104 105 106
# Vertices Runtime [s]
Monos
Monos v. Surfer2
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 9/10
10−1 100 101 102 103 102 103 104 105
# Vertices Runtime [s]
rpg_rnd rpg_iso
10−1 100 101 102 103 102 103 104 105
# Vertices Runtime [s]
rpg_rnd rpg_iso
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 9/10
10−1 100 101 102 103 102 103 104 105
# Vertices Runtime [s]
rpg_rnd rpg_iso
r Why is iso less problematic than octa input? r Turns out our octa input was
had random coordinates. r This resulted in significantly many co-temporal events for the octa input. r Indeed, with random edge weights, the spread goes away. r We can split triangles by component, as the skeletons are independent.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 9/10
10−1 100 101 102 103 102 103 104 105
# Vertices Runtime [s]
rpg_rnd rpg_iso
r Why is iso less problematic than octa input? r Turns out our octa input was
had random coordinates. r This resulted in significantly many co-temporal events for the octa input. r Indeed, with random edge weights, the spread goes away. r We can split triangles by component, as the skeletons are independent.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 9/10
10−1 100 101 102 103 102 103 104 105
# Vertices Runtime [s]
rpg_rnd rpg_iso
r Why is iso less problematic than octa input? r Turns out our octa input was
had random coordinates. r This resulted in significantly many co-temporal events for the octa input. r Indeed, with random edge weights, the spread goes away. r We can split triangles by component, as the skeletons are independent.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 9/10
10−1 100 101 102 103 102 103 104 105
# Vertices Runtime [s]
randomly weighted rpg_octa
r Why is iso less problematic than octa input? r Turns out our octa input was
had random coordinates. r This resulted in significantly many co-temporal events for the octa input. r Indeed, with random edge weights, the spread goes away. r We can split triangles by component, as the skeletons are independent.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 9/10
10−1 100 101 102 103 102 103 104 105
# Vertices Runtime [s]
randomly weighted rpg_octa
r Why is iso less problematic than octa input? r Turns out our octa input was
had random coordinates. r This resulted in significantly many co-temporal events for the octa input. r Indeed, with random edge weights, the spread goes away. r We can split triangles by component, as the skeletons are independent.
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 10/10
r Monos: https://github.com/cgalab/monos r Surfer2: https://github.com/cgalab/surfer2
Questions? Mail palfrader@cs.sbg.ac.at
Computational Geometry and Applications Lab
UNIVERSITY OF SALZBURG
Straight Skeleton Implementations – Peter Palfrader 10/10
r Monos: https://github.com/cgalab/monos r Surfer2: https://github.com/cgalab/surfer2
Questions? Mail palfrader@cs.sbg.ac.at