Straight Skeleton Implementations Computational Geometry and - - PowerPoint PPT Presentation

straight skeleton implementations
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations based on Exact Arithmetic

Günther Eder, Martin Held, and Peter Palfrader

Online Conference, March 2020

slide-2
SLIDE 2

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 2/10

Straight Skeleton

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

slide-3
SLIDE 3

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 2/10

Straight Skeleton

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

slide-4
SLIDE 4

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 2/10

Straight Skeleton

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

slide-5
SLIDE 5

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 2/10

Straight Skeleton

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

slide-6
SLIDE 6

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 2/10

Straight Skeleton

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

slide-7
SLIDE 7

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 2/10

Straight Skeleton

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

slide-8
SLIDE 8

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 2/10

Straight Skeleton

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

slide-9
SLIDE 9

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 2/10

Straight Skeleton

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

slide-10
SLIDE 10

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 2/10

Straight Skeleton

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

slide-11
SLIDE 11

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 2/10

Straight Skeleton

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

slide-12
SLIDE 12

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 2/10

Straight Skeleton

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

slide-13
SLIDE 13

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 2/10

Straight Skeleton

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

slide-14
SLIDE 14

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 2/10

Straight Skeleton

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

slide-15
SLIDE 15

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 2/10

Straight Skeleton

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

slide-16
SLIDE 16

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 2/10

Straight Skeleton

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

slide-17
SLIDE 17

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 2/10

Straight Skeleton

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

slide-18
SLIDE 18

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 2/10

Straight Skeleton

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

slide-19
SLIDE 19

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 2/10

Straight Skeleton

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.

slide-20
SLIDE 20

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 3/10

Algorithms

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)∗.

slide-21
SLIDE 21

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 3/10

Algorithms

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)∗.

slide-22
SLIDE 22

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 3/10

Algorithms

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!

slide-23
SLIDE 23

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 3/10

Algorithms

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!

slide-24
SLIDE 24

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 4/10

Cacciola

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.

slide-25
SLIDE 25

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 4/10

Cacciola

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.

slide-26
SLIDE 26

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 4/10

Cacciola

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.

slide-27
SLIDE 27

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 4/10

Cacciola

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.

slide-28
SLIDE 28

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 4/10

Cacciola

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.

slide-29
SLIDE 29

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 5/10

Biedl et al.

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).

slide-30
SLIDE 30

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 5/10

Biedl et al.

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).

slide-31
SLIDE 31

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 5/10

Biedl et al.

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).

slide-32
SLIDE 32

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 5/10

Biedl et al.

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).

slide-33
SLIDE 33

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 5/10

Biedl et al.

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).

slide-34
SLIDE 34

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 5/10

Biedl et al.

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).

slide-35
SLIDE 35

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 5/10

Biedl et al.

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).

slide-36
SLIDE 36

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 5/10

Biedl et al.

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).

slide-37
SLIDE 37

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 5/10

Biedl et al.

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).

slide-38
SLIDE 38

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 6/10

Aichholzer and Aurenhammer

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.

slide-39
SLIDE 39

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 6/10

Aichholzer and Aurenhammer

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.

slide-40
SLIDE 40

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 6/10

Aichholzer and Aurenhammer

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.

slide-41
SLIDE 41

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 6/10

Aichholzer and Aurenhammer

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.

slide-42
SLIDE 42

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 6/10

Aichholzer and Aurenhammer

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.

slide-43
SLIDE 43

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 6/10

Aichholzer and Aurenhammer

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.

slide-44
SLIDE 44

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 6/10

Aichholzer and Aurenhammer

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.

slide-45
SLIDE 45

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 6/10

Aichholzer and Aurenhammer

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.

slide-46
SLIDE 46

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 6/10

Aichholzer and Aurenhammer

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.

slide-47
SLIDE 47

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 6/10

Aichholzer and Aurenhammer

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.

slide-48
SLIDE 48

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 6/10

Aichholzer and Aurenhammer

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.

slide-49
SLIDE 49

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 6/10

Aichholzer and Aurenhammer

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.

slide-50
SLIDE 50

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 6/10

Aichholzer and Aurenhammer

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.

slide-51
SLIDE 51

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 6/10

Aichholzer and Aurenhammer

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.

slide-52
SLIDE 52

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 6/10

Aichholzer and Aurenhammer

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.

slide-53
SLIDE 53

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 6/10

Aichholzer and Aurenhammer

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.

slide-54
SLIDE 54

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 6/10

Aichholzer and Aurenhammer

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.

slide-55
SLIDE 55

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

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.

slide-56
SLIDE 56

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

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.

slide-57
SLIDE 57

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

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.

slide-58
SLIDE 58

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

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.

slide-59
SLIDE 59

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

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.

slide-60
SLIDE 60

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

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.

slide-61
SLIDE 61

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

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.

slide-62
SLIDE 62

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

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.

slide-63
SLIDE 63

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

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.

slide-64
SLIDE 64

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

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.

slide-65
SLIDE 65

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

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.

slide-66
SLIDE 66

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

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.

slide-67
SLIDE 67

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

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.

slide-68
SLIDE 68

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

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.

slide-69
SLIDE 69

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

?

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.

slide-70
SLIDE 70

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

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.

slide-71
SLIDE 71

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

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.

slide-72
SLIDE 72

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

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.

slide-73
SLIDE 73

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

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.

slide-74
SLIDE 74

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 7/10

Surfer2

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.

slide-75
SLIDE 75

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 8/10

Runtime

  • ● ●
  • ● ●
  • 10−3

10−2 10−1 100 101 102 103 102 103 104 105

# Vertices Runtime [s]

  • CGAL (interior−only)

Surfer2 (plane) Surfer2 (interior−only) Surfer2 (plane, IEEE 754)

  • 102

103 104 102 103 104 105

# Vertices Memory Use [MiB]

  • CGAL (interior−only)

Surfer2 (plane) Surfer2 (interior−only) Monos Surfer2 (plane, IEEE 754)

CGAL v. Surfer2

slide-76
SLIDE 76

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 8/10

Runtime

  • ● ●
  • ● ●
  • 101

102 103 104 105 106

# Vertices Runtime [s]

  • Surfer2 (interior−only)

Monos

Monos v. Surfer2

slide-77
SLIDE 77

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 9/10

Investigating the spread

Surfer2

  • 10−2

10−1 100 101 102 103 102 103 104 105

# Vertices Runtime [s]

  • rpg_octa

rpg_rnd rpg_iso

CGAL

  • ● ●
  • 10−2

10−1 100 101 102 103 102 103 104 105

# Vertices Runtime [s]

  • rpg_octa

rpg_rnd rpg_iso

slide-78
SLIDE 78

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 9/10

Investigating the spread

Surfer2

  • 10−2

10−1 100 101 102 103 102 103 104 105

# Vertices Runtime [s]

  • rpg_octa

rpg_rnd rpg_iso

r Why is iso less problematic than octa input? r Turns out our octa input was

  • n the integer grid, the iso

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.

slide-79
SLIDE 79

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 9/10

Investigating the spread

Surfer2

  • 10−2

10−1 100 101 102 103 102 103 104 105

# Vertices Runtime [s]

  • rpg_octa

rpg_rnd rpg_iso

r Why is iso less problematic than octa input? r Turns out our octa input was

  • n the integer grid, the iso

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.

slide-80
SLIDE 80

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 9/10

Investigating the spread

Surfer2

  • 10−2

10−1 100 101 102 103 102 103 104 105

# Vertices Runtime [s]

  • rpg_octa

rpg_rnd rpg_iso

r Why is iso less problematic than octa input? r Turns out our octa input was

  • n the integer grid, the iso

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.

slide-81
SLIDE 81

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 9/10

Investigating the spread

Surfer2

  • 10−2

10−1 100 101 102 103 102 103 104 105

# Vertices Runtime [s]

  • unweighted rpg_octa

randomly weighted rpg_octa

r Why is iso less problematic than octa input? r Turns out our octa input was

  • n the integer grid, the iso

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.

slide-82
SLIDE 82

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 9/10

Investigating the spread

Surfer2

  • 10−2

10−1 100 101 102 103 102 103 104 105

# Vertices Runtime [s]

  • unweighted rpg_octa

randomly weighted rpg_octa

r Why is iso less problematic than octa input? r Turns out our octa input was

  • n the integer grid, the iso

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.

slide-83
SLIDE 83

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 10/10

Source code

r Monos: https://github.com/cgalab/monos r Surfer2: https://github.com/cgalab/surfer2

Thanks!

Questions? Mail palfrader@cs.sbg.ac.at

slide-84
SLIDE 84

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG

Straight Skeleton Implementations – Peter Palfrader 10/10

Source code

r Monos: https://github.com/cgalab/monos r Surfer2: https://github.com/cgalab/surfer2

Thanks!

Questions? Mail palfrader@cs.sbg.ac.at