algorithms for 3d printing and other manufacturing...

122
Algorithms for 3D Printing and Other Manufacturing Methodologies Efi Fogel Tel Aviv University 2D Arrangements Apr. 24 th , 2017

Upload: others

Post on 29-Jun-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Algorithms for 3D Printing and Other ManufacturingMethodologies

Efi Fogel

Tel Aviv University

2D ArrangementsApr. 24th, 2017

Page 2: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Outline

1 2D ArrangementsDefinitions & ComplexityRepresentationQueries

Vertical DecompositionPoint Location Queries

The Zone Computation Algorithmic FrameworkThe Plane Sweep Algorithmic FrameworkArrangement of Unbounded CurvesLiterature

Algorithms for 3D Printing and Other Manufacturing Methodologies 2

Page 3: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Outline

1 2D ArrangementsDefinitions & ComplexityRepresentationQueries

Vertical DecompositionPoint Location Queries

The Zone Computation Algorithmic FrameworkThe Plane Sweep Algorithmic FrameworkArrangement of Unbounded CurvesLiterature

Algorithms for 3D Printing and Other Manufacturing Methodologies 3

Page 4: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Two Dimensional ArrangementsDefinition (Arrangement)Given a collection C of curves on a surface, the arrangement A (C ) is thepartition of the surface into vertices, edges and faces induced by thecurves of C .

An arrangementof circles in theplane.

An arrangement of lines inthe plane.

An arrangementof great-circlearcs on a sphere.

Algorithms for 3D Printing and Other Manufacturing Methodologies 4

Page 5: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Arrangement Background

Arrangements have numerous applicationsrobot motion planning, computer vision, GIS, optimization,computational molecular biology

A planar map of the Boston area showing the top of the arm of cape cod.Raw data comes from the US Census 2000 TIGER/line data files

Algorithms for 3D Printing and Other Manufacturing Methodologies 5

Page 6: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Arrangement 2D Complexity

Definition (Well Behaved Curves)Curves in a set C are well behaved, if each pair of curves in C intersect atmost some constant number of times.

Theorem (Arrangement in IR2)The maximum combinatorial complexity of an arrangement of nwell-behaved curves in the plane is Θ(n2).

The complexity of arrangements induced by n non-parallel lines is Ω(n2).

Algorithms for 3D Printing and Other Manufacturing Methodologies 6

Page 7: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Arrangement dD Complexity

Definition (Hyperplane)A hyperplane is the set of solutions to a single equation AX = c, where Aand X are vectors and c is some constant.

A hyperplane is any codimension-1 vector subspace of a vector space.

Definition (Hypersurface)A hypersurface is the set of solutions to a single equationf (x1,x2, . . . ,xn) = 0.

Theorem (Arrangement in IRd)The maximum combinatorial complexity of an arrangement of nwell-behaved (hyper)surfaces in IRd is Θ(nd ).

The complexity of arrangements induced by n non-parallel hyperplanes isΩ(nd ).Algorithms for 3D Printing and Other Manufacturing Methodologies 7

Page 8: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Planar MapsDefinition (Planar Graph)A planar graph is a graph that can be embedded in the plane.

Definition (Planar Map)A planar map is the embedding of a planar graph in the plane. It is asubdivision of the plane into vertices, (bounded) edges, and faces.

Theorem (Euler Formula)Let v, e, and f be the number of vertices, edges, and faces (including theunbounded face) of a planar map, then v − e + f = 2.

8 circlesvertices — 25edges — 56faces — 33 (including the unbounded face)

Algorithms for 3D Printing and Other Manufacturing Methodologies 8

Page 9: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Surface MapsPlanar maps generalize to surfaces!

Definition (genus)A topologically invariant property of a surface defined as the largestnumber of nonintersecting simple closed curves that can be drawn on thesurface without separating it.

Theorem (Euler Formula)Let v, e, and f be the number of vertices, edges, and faces of a mapembedded on a surface with genus g, then v − e + f = 2−2g.

If each face is incident to at least 3 edges =⇒ 3f ≤ 2e

3v −3e +3f = 6−6g ≤ 3v −3e +2e

e ≤ 3v −6+6g

In a planar triangulation e = 3v −6, f = 2v −4Algorithms for 3D Printing and Other Manufacturing Methodologies 9

Page 10: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Outline

1 2D ArrangementsDefinitions & ComplexityRepresentationQueries

Vertical DecompositionPoint Location Queries

The Zone Computation Algorithmic FrameworkThe Plane Sweep Algorithmic FrameworkArrangement of Unbounded CurvesLiterature

Algorithms for 3D Printing and Other Manufacturing Methodologies 10

Page 11: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Cgal Arrangement_on_surface_2 PackageConstructs, maintains, modifies, traverses, queries, and presentsarrangements on two-dimensional parametric surfaces.Complete and Robust

All inputs are handled correctly (including degenerate input).Exact number types are used to achieve robustness.

Generic – easy to interface, extend, and adaptModular – geometric and topological aspects are separatedSupports among the others:

various point location strategieszone-construction paradigmsweep-line paradigm

F vertical decompositionF overlay computationF batched point location

Part of the Cgal basic library

Algorithms for 3D Printing and Other Manufacturing Methodologies 11

Page 12: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Arrangement_2<Tra i t s , Dcel>

Is the main component in the 2D Arrangements package.An instance of this class template represents 2D arrangements.The representation of the arrangements and the various geometricalgorithms that operate on them are separated.The topological and geometric aspects are separated.

The T r a i t s template-parameter must be substituted by a model of ageometry-traits concept, e.g., ArrangementBasicTraits_2.

F Defines the type X_monotone_curve_2 that represents x -monotonecurves.

F Defines the type Point_2 that represents two-dimensional points.F Supports basic geometric predicates on these types.

The Dce l template-parameter must be substituted by a model of theArrangementDcel concept, e.g., A r r_de f au l t_dce l <Tra i t s >.

Algorithms for 3D Printing and Other Manufacturing Methodologies 12

Page 13: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Doubly-Connected Edge List

One of a family ofcombinatorial data-structurescalled the halfedgedata-structures.Represents each edge using apair of directed halfedges.Maintains incidence relationsamong cells of 0 (vertex), 1(edge), and 2 (face)dimensions.

v1

v2

eprev

enext

ee ′

f0

f1

f2

f3f4

u1

u1

The target vertex of a halfedge and the halefedge are incident to each other.The source and target vertices of a halfedge are adjacent.

Algorithms for 3D Printing and Other Manufacturing Methodologies 13

Page 14: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Doubly-Connected Edge List Components

VertexAn incident halfedge pointing at the vertex.

HalfedgeThe opposite halfedge.The previous halfedge in the component boundary.The next halfedge in the component boundary.The target vertex of the halfedge.The incident face.

FaceAn incident halfedge on the outer Ccb.An incident halfedge on each inner Ccb.

Connected component of the boundary (Ccb)The circular chains of halfedges around faces.

Algorithms for 3D Printing and Other Manufacturing Methodologies 14

Page 15: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Arrangement Representation

The halfedges incident to a vertex form a circular list.The halfedges are clockwise oriented around the vertex.

The halfedges around faces form circular chains.All halfedges of a chain are incident to the same face.The halfedges are counterclockwise oriented along theboundary.

Geometric interpretation is added by classes built on top of thehalfedge data-structure.

Algorithms for 3D Printing and Other Manufacturing Methodologies 15

Page 16: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Modifying the Arrangement

v1 v2f

v

u

Inserting a curve that inducesa new hole inside the face f ,a r r . i n s e r t _ i n _ f a c e _ i n t e r i o r ( c , f ) .

Inserting a curve from an existing vertex uthat corresponds to one of its endpoints,i n s e r t_ f r om_ l e f t_ v e r t e x ( c , v ) ,i n s e r t_ f r om_ r i g h t_v e r t e x ( c , v ) .

v1

v2

h 1

f f ′ h2

Inserting an x -monotone curve, the endpointsof which correspond to existing vertices v1and v2, i n s e r t _ a t _ v e r t i c e s ( c , v1 , v2 ) .

The new pair of halfedges close a new face f ′.The hole h1, which belonged to f before theinsertion, becomes a hole in this new face.

Algorithms for 3D Printing and Other Manufacturing Methodologies 16

Page 17: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Application: Obtaining Silhouettes of PolytopesApplicationGiven a convex polytope P obtain the outline of the shadow of P cast onthe xy-plane, where the scene is illuminated by a light source at infinitydirected along the negative z-axis.

The silhouette is represented as an arrangement with two faces:an unbounded face anda single hole inside the unbounded face.

x

y

An icosahedron and its silhouette.

Algorithms for 3D Printing and Other Manufacturing Methodologies 17

Page 18: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Application: Obtaining Silhouettes of Polytopes: InsertionInsert an edge into the arrangement only once to avoid overlaps.

Maintain a set of handles to polytope edges the projection of whichhave already been inserted into the arrangement.Implemented with the s td : : s e t data-structure.

F Requires the provision of a model of the StrictWeakOrdering.F A functor that compares handles:

s t r u c t Less_than_handle t emp la t e <typename Type>boo l o p e r a t o r ( ) ( Type s1 , Type s2 ) con s t r e t u r n (&(∗ s1 ) < &(∗ s2 ) ) ;

; s t d : : s e t<Po lyhedron_ha l f edge_cons t_hand le , Less_than_handle >

Determine the appropriate insertion routines.Maintain a map that maps polyhedron vertices to correspondingarrangement vertices.Implemented with the s td : : map data-structure.s t d : : map<typename Po lyhedron : : Ver tex_const_hand le ,

typename Arrangement : : Vertex_hand le , Less_than_handle>

Algorithms for 3D Printing and Other Manufacturing Methodologies 18

Page 19: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Application: Obtaining Silhouettes of Polytopes:ConstructionObtain the arrangement A that represents the silhouette of a Convex Polytope P1. Construct the input convex polytope P.2. Compute the normals to all facets of P.3. for each facet f of P4. if f is facing upwards (has a positive z component)5. for each edge e on the boundary of f6. if the projection of e hasn’t been inserted yet into A7. Insert the projection of e into A .

Computes the normal to a facet. s t r u c t Normal_equat ion

temp la t e <typename Facet> typename Facet : : Plane_3 op e r a t o r ( ) ( Facet& f ) typename Facet : : Ha l f edge_hand l e h = f . h a l f e d g e ( ) ;r e t u r n CGAL : : c r o s s_p roduc t (h−>next ()−>ve r t e x ()−>po i n t ( ) −

h−>ve r t e x ()−>po i n t ( ) ,h−>next ()−>next ()−>ve r t e x ()−>po i n t ( ) −h−>next ()−>ve r t e x ()−>po i n t ( ) ) ;

;

Algorithms for 3D Printing and Other Manufacturing Methodologies 19

Page 20: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Traversing the Halfedges Incident to an ArrangementVertex

Print all the halfedges incident to a vertex. t emp la t e <typename Arrangement>vo i d p r i n t _ i n c i d e n t_ h a l f e d g e s ( typename Arrangement : : Ve r tex_cons t_hand le v )

i f ( v−>i s _ i s o l a t e d ( ) ) s td : : cout << "The v e r t e x ( " << v−>po i n t ( ) << " ) i s i s o l a t e d " << std : : e nd l ;r e t u r n ;

s td : : cout << "The n e i g hbo r s o f the v e r t e x ( " << v−>po i n t ( ) << " ) a r e : " ;typename Arrangement : : Ha l f e dg e_a r ound_ve r t e x_con s t_c i r c u l a t o r f i r s t , c u r r ;f i r s t = cu r r = v−>i n c i d e n t_ h a l f e d g e s ( ) ;do s td : : cout << " ( " << cur r−>sou r c e ()−>po i n t ( ) << " ) " ;wh i l e (++cu r r != f i r s t ) ;s t d : : cout << s td : : e nd l ;

Algorithms for 3D Printing and Other Manufacturing Methodologies 20

Page 21: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Traversing the Halfedges of an Arrangement Ccb

Print all x -monotone curves along a given Ccb t emp la t e <typename Arrangement>vo i d p r i n t_ccb ( typename Arrangement : : C cb_ha l f e dg e_con s t_c i r c u l a t o r c i r c )

s td : : cout << " ( " << c i r c −>sou r c e ()−>po i n t ( ) << " ) " ;typename Arrangement : : C cb_ha l f e dg e_con s t_c i r c u l a t o r c u r r = c i r c ;do

typename Arrangement : : Ha l f edge_cons t_hand l e he = cu r r ;s t d : : cout << " [ " << he−>curve ( ) << " ] "

<< " ( " << he−>t a r g e t ()−>po i n t ( ) << " ) " ; wh i l e (++cu r r != c i r c ) ;s t d : : cout << s td : : e nd l ;

he−>curve ( ) is equivalent to he−>twin ()−>curve ( ) ,he−>sou r c e ( ) is equivalent to he−>twin ()−>t a r g e t ( ) , andhe−>t a r g e t ( ) is equivalent to he−>twin ()−>sou r c e ( ) .

Algorithms for 3D Printing and Other Manufacturing Methodologies 21

Page 22: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Traversing the Ccbs of an Arrangement FacePrint the outer and inner boundaries of a face. t emp la t e <typename Arrangement>vo i d p r i n t_ f a c e ( typename Arrangement : : Face_const_handle f )

// P r i n t the ou t e r boundary .i f ( f−>is_unbounded ( ) ) s t d : : cout << "Unbounded f a c e . " << std : : e nd l ;e l s e

s td : : cout << "Outer boundary : " ;p r in t_ccb<Arrangement >(f−>outer_ccb ( ) ) ;

// P r i n t the boundary o f each o f the h o l e s .s i z e_ t i ndex = 1 ;typename Arrangement : : Ho l e_con s t_ i t e r a t o r ho l e ;f o r ( ho l e = f−>ho l e s_beg i n ( ) ; h o l e != f−>holes_end ( ) ; ++hole , ++index )

s td : : cout << "Hole #" << index << " : " ;p r in t_ccb<Arrangement >(∗ ho l e ) ;

// P r i n t the i s o l a t e d v e r t i c e s .typename Arrangement : : I s o l a t e d_ v e r t e x_ c o n s t _ i t e r a t o r i v ;f o r ( i v = f−>i s o l a t e d_ v e r t i c e s _ b e g i n ( ) , i nd ex = 1 ;

i v != f−>i s o l a t e d_ v e r t i c e s _ e n d ( ) ; ++iv , ++index )s td : : cout << " I s o l a t e d v e r t e x #" << index << " : "

<< " ( " << iv−>po i n t ( ) << " ) " << std : : e nd l ; Algorithms for 3D Printing and Other Manufacturing Methodologies 22

Page 23: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Traversing an ArrangementPrint all the cells of an arrangement. t emp la t e <typename Arrangement>vo i d p r i n t_a r r angement ( con s t Arrangement& a r r )

CGAL_precondit ion ( a r r . i s _ v a l i d ( ) ) ;

// P r i n t the ar rangement v e r t i c e s .typename Arrangement : : V e r t e x_con s t_ i t e r a t o r v i t ;s t d : : cout << a r r . number_o f_ve r t i c e s ( ) << " v e r t i c e s : " << s td : : e nd l ;f o r ( v i t = a r r . v e r t i c e s _ b e g i n ( ) ; v i t != a r r . v e r t i c e s_ end ( ) ; ++v i t )

s td : : cout << " ( " << v i t−>po i n t ( ) << " ) " ;i f ( v i t−>i s _ i s o l a t e d ( ) ) s t d : : cout << "− I s o l a t e d . " << s td : : e nd l ;e l s e s t d : : cout << "− deg r ee " << v i t−>deg ree ( ) << s td : : e nd l ;

// P r i n t the ar rangement edges .typename Arrangement : : Edge_con s t_ i t e r a t o r e i t ;s t d : : cout << a r r . number_of_edges ( ) << " edges : " << s td : : e nd l ;f o r ( e i t = a r r . edges_beg in ( ) ; e i t != a r r . edges_end ( ) ; ++e i t )

s t d : : cout << " [ " << e i t −>curve ( ) << " ] " << std : : e nd l ;

// P r i n t the ar rangement f a c e s .typename Arrangement : : F a c e_con s t_ i t e r a t o r f i t ;s t d : : cout << a r r . number_of_faces ( ) << " f a c e s : " << s td : : e nd l ;f o r ( f i t = a r r . f a c e s_beg i n ( ) ; f i t != a r r . faces_end ( ) ; ++f i t )

p r i n t_ f a c e <Arrangement >( f i t ) ; Algorithms for 3D Printing and Other Manufacturing Methodologies 23

Page 24: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Outline

1 2D ArrangementsDefinitions & ComplexityRepresentationQueries

Vertical DecompositionPoint Location Queries

The Zone Computation Algorithmic FrameworkThe Plane Sweep Algorithmic FrameworkArrangement of Unbounded CurvesLiterature

Algorithms for 3D Printing and Other Manufacturing Methodologies 24

Page 25: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Vertical Decomposition

Is a refinement of the original subdivision A of n edges.

In the planeContains O(n) pseudo trapezoids (trianglesand trapezoids).A pseudo trapezoid is determined by

F 2 vertices left(∆) and right(∆), andF 2 segments top(∆) and bottom(∆).

Generalizes to higher dimensions and arrangements induces by wellbehaved objects.

bottom(∆)

top(∆)

left(∆)

top(∆)

bottom(∆)

left(∆)

bottom(∆)

top(∆)

left(∆) bottom(∆)

top(∆)

left(∆)

Algorithms for 3D Printing and Other Manufacturing Methodologies 25

Page 26: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Vertical Decomposition Complexity

R—a bounding rectangleS—a set of n interior disjoint line segmentsT (S)—the trapezoidal map of ST (S) is a planar map with v vertices, e edges, and f facesA vertex of T (S) is either

a vertex of R,an endpoint of a segment in S, orthe point where the vertical extension hits

v ≤ 4+2n+2(2n) = 6n+4f ≤ 3n+1

The lower left corner of R is left(∆) of one trapezoidThe right endpoint of a segment can be left(∆) of one trapezoidThe left endpoint of a segment can be left(∆) of two trapezoid

Algorithms for 3D Printing and Other Manufacturing Methodologies 26

Page 27: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Application: Decomposing an Arrangement of LineSegments

ApplicationConstructs the vertical decomposition of a given arrangement.

Algorithms for 3D Printing and Other Manufacturing Methodologies 27

Page 28: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Decomposing an Arrangement of Line Segments: Code t emp la t e <typename Arrangement , typename Kerne l>vo i d v e r t i c a l _ d e c ompo s i t i o n ( Arrangement& ar r , Ke rne l& ke r )

t y p ed e f s t d : : p a i r <typename Arrangement : : Ver tex_const_hand le ,s t d : : p a i r <CGAL : : Object , CGAL : : Object> > Vd_entry ;

// For each v e r t e x i n the arrangment , l o c a t e the f e a t u r e tha t l i e s// d i r e c t l y be low i t and the f e a t u r e t ha t l i e s d i r e c t l y above i t .s t d : : l i s t <Vd_entry> v d_ l i s t ;CGAL : : decompose ( a r r , s t d : : b a c k_ i n s e r t e r ( v d_ l i s t ) ) ;

// Go ove r the v e r t i c e s ( g i v en i n a s c end i ng l e x i c o g r a p h i c a l xy−o r d e r ) ,// and add segements to the f e a u t r e s be low and above i t .c on s t typename Ke rne l : : Equal_2 equa l = ke r . equa l_2_ob jec t ( ) ;typename s td : : l i s t <Vd_entry >: : i t e r a t o r i t , p r ev = v d_ l i s t . end ( ) ;f o r ( i t = v d_ l i s t . b eg i n ( ) ; i t != v d_ l i s t . end ( ) ; ++i t )

// I f the f e a t u r e above the p r e v i o u s v e r t e x i s not the c u r r e n t v e r t e x ,// Add a v e r t i c a l segment to the f e a t u r e below the v e r t e x .typename Arrangement : : Ver tex_cons t_hand le v ;i f ( ( p r ev == v d_ l i s t . end ( ) ) | |

!CGAL : : a s s i g n ( v , prev−>second . second ) | |! equa l ( v−>po i n t ( ) , i t −>f i r s t −>po i n t ( ) ) )

add_ve r t i c a l_segment ( a r r , a r r . non_const_handle ( i t −>f i r s t ) , i t −>second . f i r s t , k e r ) ;// Add a v e r t i c a l segment to the f e a t u r e above the v e r t e x .add_ve r t i c a l_segment ( a r r , a r r . non_const_handle ( i t −>f i r s t ) , i t −>second . second , ke r ) ;p r ev = i t ;

Algorithms for 3D Printing and Other Manufacturing Methodologies 28

Page 29: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Arrangement Point Location

Given a subdivision A of the space into cells and a query point q, find thecell of A containing q.

q

In degenerate situations the query point can

lie on an edge, orcoincide with a vertex.

Algorithms for 3D Printing and Other Manufacturing Methodologies 29

Page 30: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Arrangement Point Location

Given a subdivision A of the space into cells and a query point q, find thecell of A containing q.

q

In degenerate situations the query point can

lie on an edge, orcoincide with a vertex.

Algorithms for 3D Printing and Other Manufacturing Methodologies 30

Page 31: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Arrangement Point Location

Given a subdivision A of the space into cells and a query point q, find thecell of A containing q.

In degenerate situations the query point can

lie on an edge, orcoincide with a vertex.

Algorithms for 3D Printing and Other Manufacturing Methodologies 31

Page 32: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Arrangement Point Location

Given a subdivision A of the space into cells and a query point q, find thecell of A containing q.

q

In degenerate situations the query point canlie on an edge, or

coincide with a vertex.

Algorithms for 3D Printing and Other Manufacturing Methodologies 32

Page 33: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Arrangement Point Location

Given a subdivision A of the space into cells and a query point q, find thecell of A containing q.

q

In degenerate situations the query point canlie on an edge, or

coincide with a vertex.

Algorithms for 3D Printing and Other Manufacturing Methodologies 33

Page 34: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Arrangement Point Location

Given a subdivision A of the space into cells and a query point q, find thecell of A containing q.

q

In degenerate situations the query point canlie on an edge, orcoincide with a vertex.

Algorithms for 3D Printing and Other Manufacturing Methodologies 34

Page 35: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Arrangement Point Location

Given a subdivision A of the space into cells and a query point q, find thecell of A containing q.

q

In degenerate situations the query point canlie on an edge, orcoincide with a vertex.

Algorithms for 3D Printing and Other Manufacturing Methodologies 35

Page 36: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Point Location Algorithms

Traditional Point Location StrategiesHierarchical data structure [Kir83]Persistent search trees [ST86]Random Incremental Construction [Mul91, Sei91]

Point-location in TriangulationsWalk along a line [DPT02]The Delaunay Hierarchy [Dev02]Jump & Walk [DMZ98, DLM99]

Other algorithmsEntropy based algorithms [Ary01]Point location using Grid [EKA84]

Algorithms for 3D Printing and Other Manufacturing Methodologies 36

Page 37: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Cgal Point Location Strategies

NaiveTraverse all edges of the arrangement to find the closest.

Walk along lineWalk along a vertical line from infinity.

Trapezoidal map Randomized Incremental-Construction (RIC)Landmark

Algorithms for 3D Printing and Other Manufacturing Methodologies 37

Page 38: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Walk Along a Line

Start from a known place in the arrangement and walk from theretowards the query point through a straight line.

No preprocessing performed.No storage space consumed.

The implementation in Cgal:Start from the unbounded face.Walk down to the point through a vertical line.Asymptotically O(n) time.In practice: quite good, and easy to maintain.

Algorithms for 3D Printing and Other Manufacturing Methodologies 38

Page 39: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Triangulation Point Location

Preprocessing:Triangulate the planar map.

F Triangles are much simpler than the arbitrary shapes of faces.F O(n logn) time and O(n) space.F Retain relations between planar map vertices and triangulation.

Query:Find the triangle P containing the query point q.

F Walk from an arbitrary vertex.F O(n) time in the worst case, but O(

√n) time on average, if the

vertices are distributed uniformly at random.Find the face in the arrangement that contains the triangle P.

Algorithms for 3D Printing and Other Manufacturing Methodologies 39

Page 40: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Landmark Point Location

Given an arrangement A

PreprocessChoose the landmarks and locatethem in A .

Store the landmarks in a nearestneighbor search-structure.

Answer queryGiven a query point q

Find the landmark ` closest to qusing the search structure.

F The landmarks are on a grid =⇒Nearest grid point found in O(1)time.

“Walk along a line” from ` to q.

q

`

Algorithms for 3D Printing and Other Manufacturing Methodologies 40

Page 41: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Landmark Point Location

Given an arrangement A

PreprocessChoose the landmarks and locatethem in A .

Store the landmarks in a nearestneighbor search-structure.

Answer queryGiven a query point q

Find the landmark ` closest to qusing the search structure.

F The landmarks are on a grid =⇒Nearest grid point found in O(1)time.

“Walk along a line” from ` to q.

q

`

Algorithms for 3D Printing and Other Manufacturing Methodologies 41

Page 42: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Landmark Point Location

Given an arrangement A

PreprocessChoose the landmarks and locatethem in A .Store the landmarks in a nearestneighbor search-structure.

Answer queryGiven a query point q

Find the landmark ` closest to qusing the search structure.

F The landmarks are on a grid =⇒Nearest grid point found in O(1)time.

“Walk along a line” from ` to q.

q

`

Algorithms for 3D Printing and Other Manufacturing Methodologies 42

Page 43: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Landmark Point Location

Given an arrangement A

PreprocessChoose the landmarks and locatethem in A .Store the landmarks in a nearestneighbor search-structure.

Answer queryGiven a query point q

Find the landmark ` closest to qusing the search structure.

F The landmarks are on a grid =⇒Nearest grid point found in O(1)time.

“Walk along a line” from ` to q.

q

`

Algorithms for 3D Printing and Other Manufacturing Methodologies 43

Page 44: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Landmark Point Location

Given an arrangement A

PreprocessChoose the landmarks and locatethem in A .Store the landmarks in a nearestneighbor search-structure.

Answer queryGiven a query point qFind the landmark ` closest to qusing the search structure.

F The landmarks are on a grid =⇒Nearest grid point found in O(1)time.

“Walk along a line” from ` to q.

q

`

Algorithms for 3D Printing and Other Manufacturing Methodologies 44

Page 45: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Landmark Point Location

Given an arrangement A

PreprocessChoose the landmarks and locatethem in A .Store the landmarks in a nearestneighbor search-structure.

Answer queryGiven a query point qFind the landmark ` closest to qusing the search structure.

F The landmarks are on a grid =⇒Nearest grid point found in O(1)time.

“Walk along a line” from ` to q.

q

`

Algorithms for 3D Printing and Other Manufacturing Methodologies 45

Page 46: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Trapezoidal MapRandomized Incremental-Construction

A — an arrangement.

PreprocessFor each segment in random order.

F Update the trapezoidal map.F Insert the new trapezoid into a search structure.

O(n logn) time, O(n) space.

Answer queryGiven a query point q

Search the trapezoid in the search structure.Obtain the cell containing the trapezoid.O(logn) expected time (if the segments were processed in randomorder).

Algorithms for 3D Printing and Other Manufacturing Methodologies 46

Page 47: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Trapezoidal MapRandomized Incremental-Construction

A — an arrangement.Preprocess

For each segment in random order.

F Update the trapezoidal map.F Insert the new trapezoid into a search structure.

O(n logn) time, O(n) space.Answer query

Given a query point q

Search the trapezoid in the search structure.Obtain the cell containing the trapezoid.O(logn) expected time (if the segments were processed in randomorder).

Algorithms for 3D Printing and Other Manufacturing Methodologies 47

Page 48: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Trapezoidal MapRandomized Incremental-Construction

A — an arrangement.Preprocess

For each segment in random order.F Update the trapezoidal map.

F Insert the new trapezoid into a search structure.O(n logn) time, O(n) space.

Answer queryGiven a query point q

Search the trapezoid in the search structure.Obtain the cell containing the trapezoid.O(logn) expected time (if the segments were processed in randomorder).

Algorithms for 3D Printing and Other Manufacturing Methodologies 48

Page 49: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Trapezoidal MapRandomized Incremental-Construction

A — an arrangement.Preprocess

For each segment in random order.F Update the trapezoidal map.F Insert the new trapezoid into a search structure.

O(n logn) time, O(n) space.

Answer queryGiven a query point q

Search the trapezoid in the search structure.Obtain the cell containing the trapezoid.O(logn) expected time (if the segments were processed in randomorder).

Algorithms for 3D Printing and Other Manufacturing Methodologies 49

Page 50: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Trapezoidal MapRandomized Incremental-Construction

A — an arrangement.Preprocess

For each segment in random order.F Update the trapezoidal map.F Insert the new trapezoid into a search structure.

O(n logn) time, O(n) space.Answer query

Given a query point q

Search the trapezoid in the search structure.Obtain the cell containing the trapezoid.O(logn) expected time (if the segments were processed in randomorder).

Algorithms for 3D Printing and Other Manufacturing Methodologies 50

Page 51: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Trapezoidal MapRandomized Incremental-Construction

A — an arrangement.Preprocess

For each segment in random order.F Update the trapezoidal map.F Insert the new trapezoid into a search structure.

O(n logn) time, O(n) space.Answer query

Given a query point qSearch the trapezoid in the search structure.

Obtain the cell containing the trapezoid.O(logn) expected time (if the segments were processed in randomorder).

Algorithms for 3D Printing and Other Manufacturing Methodologies 51

Page 52: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Trapezoidal MapRandomized Incremental-Construction

A — an arrangement.Preprocess

For each segment in random order.F Update the trapezoidal map.F Insert the new trapezoid into a search structure.

O(n logn) time, O(n) space.Answer query

Given a query point qSearch the trapezoid in the search structure.Obtain the cell containing the trapezoid.O(logn) expected time (if the segments were processed in randomorder).

Algorithms for 3D Printing and Other Manufacturing Methodologies 52

Page 53: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Point Location Complexity

Requirements:Fast query processing.Reasonably fast preprocessing.Small space data structure.

Naive Walk RIC Landmarks Triangulat PSTPreprocess time none none O(n logn) O(k logk) O(n logn) O(n logn)Memory space none none O(n) O(k) O(n) O(n logn)(∗)

Query time bad reasonable good good quite good goodCode simple quite simple complicated quite simple modular complicatedWalk — Walk along a line RIC — Random Incremental Construction based on trapezoidal decompositionTriangulat — Triangulation PST — Persistent Search Treek — number of landmarks(*) Can be reduced to O(n)

Algorithms for 3D Printing and Other Manufacturing Methodologies 53

Page 54: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Point Location: PrintPrint a polymorphic object. t emp la t e <typename Arrangement_>vo i d p r i n t_p o i n t_ l o c a t i o n ( con s t typename Arrangement_ : : Point_2& q ,

CGAL : : A r r_po i n t_ l o c a t i o n_ r e s u l t <Arrangement_ >: : Type& ob j )

t y p ed e f Arrangement_ Arrangementt y p ed e f typename Arrangement : : Ver tex_cons t_hand le Ver tex_cons t_hand le ;t y p ed e f typename Arrangement : : Ha l f edge_cons t_hand l e Ha l f edge_cons t_hand l e ;t y p ed e f typename Arrangement : : Face_const_handle Face_const_handle ;

con s t Ver tex_cons t_hand le ∗ v ;con s t Ha l f edge_cons t_hand l e ∗ e ;con s t Face_const_handle ∗ f ;

s t d : : cout << "The po i n t ( " << q << " ) i s l o c a t e d " ;i f ( ( f = boos t : : get<Face_const_handle >(&ob j ) ) ) // l o c a t e d i n s i d e a f a c e

s td : : cout << " i n s i d e "<< ( ( (∗ f )−>is_unbounded ( ) ) ? " the unbounded " : " abounded " )<< " f a c e . " << s td : : e nd l ;

e l s e i f ( ( e = boos t : : get<Hal fedge_const_hand le >(&ob j ) ) ) // l o c a t e d on an edges td : : cout << "onan edge : " << (∗ e)−>curve ( ) << s td : : e nd l ;

e l s e i f ( ( v = boos t : : get<Vertex_const_hand le >(&ob j ) ) ) // l o c a t e d on a v e r t e xs td : : cout << "on" << ( ( (∗ v)−> i s _ i s o l a t e d ( ) ) ? " an i s o l a t e d " : " a " )

<< " v e r t e x : " << (∗ v)−>po i n t ( ) << s td : : e nd l ;e l s e CGAL_error_msg ( " I n v a l i d o b j e c t . " ) ; // t h i s shou l d neve r happen

Algorithms for 3D Printing and Other Manufacturing Methodologies 54

Page 55: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Point Location: Locate t emp la t e <typename Po in tLoca t i on>vo i d l o c a t e_po i n t ( con s t Po i n tLo ca t i on& pl ,

con s t typename Po i n t_ l o c a t i o n : : Arrangement_2 : : Point_2& q )

t y p ed e f Po i n tLo ca t i o n Po i n t_ l o c a t i o n ;t y p ed e f typename Po i n t_ l o c a t i o n : : Arrangement_2 Arrangement_2 ;typename CGAL : : A r r_po i n t_ l o c a t i o n_ r e s u l t <Arrangement_2 >: : Type ob j = p l . l o c a t e ( q ) ;

// P r i n t the r e s u l t .p r i n t_po i n t_ l o c a t i o n <Arrangement_2>(q , ob j ) ;

q1q2 q3

q4 q5

q6

Algorithms for 3D Printing and Other Manufacturing Methodologies 55

Page 56: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Point Location: Example // F i l e : e x_po i n t_ l o c a t i o n . cpp

#i n c l u d e <CGAL/ b a s i c . h>#i n c l u d e <CGAL/ Ar r_na i v e_po i n t_ l o c a t i o n . h>#i n c l u d e <CGAL/Ar r_ l andmark s_po in t_ loca t i on . h>

#i n c l u d e " a r r_ i n e xa c t_con s t r u c t i o n_s egmen t s . h"#i n c l u d e " p o i n t _ l o c a t i o n_ u t i l s . h"

t y p ed e f CGAL : : A r r_na i v e_po i n t_ l o ca t i on<Arrangement_2> Naive_p l ;t y p ed e f CGAL : : Ar r_ landmarks_po in t_ loca t i on<Arrangement_2> Landmarks_pl ;

i n t main ( )

// Cons t r u c t the ar rangement .Arrangement_2 a r r ;con s t ruc t_segment s_a r r ( a r r ) ;

// Perform some po in t− l o c a t i o n q u e r i e s u s i n g the na i v e s t r a t e g y .Na ive_p l na i v e_p l ( a r r ) ;l o c a t e_po i n t ( na i ve_p l , Point_2 (1 , 4 ) ) ; // q1

// Attach the landmarks o b j e c t to the ar rangement and per fo rm q u e r i e s .Landmarks_pl landmarks_p l ;l andmarks_p l . a t t a ch ( a r r ) ;l o c a t e_po i n t ( landmarks_pl , Point_2 (3 , 2 ) ) ; // q4

r e t u r n 0 ; Algorithms for 3D Printing and Other Manufacturing Methodologies 56

Page 57: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Outline

1 2D ArrangementsDefinitions & ComplexityRepresentationQueries

Vertical DecompositionPoint Location Queries

The Zone Computation Algorithmic FrameworkThe Plane Sweep Algorithmic FrameworkArrangement of Unbounded CurvesLiterature

Algorithms for 3D Printing and Other Manufacturing Methodologies 57

Page 58: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Zone of Curves in Arrangements

Definition (Zone)Given an arrangement of curves A = A (C ) in the plane, the zone of anadditional curve γ /∈ C in A is the union of the features of A , whoseclosure is intersected by γ.

γ The zone of a line γ in an arrangement oflines.

Algorithms for 3D Printing and Other Manufacturing Methodologies 58

Page 59: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Zone of lines in an arrangement of Lines

The complexity of a zone is the total complexity of all features the zoneconsists of.

Theorem (Zone Complexity)The complexity of the zone of a line in an arrangement of n lines in theplane is O(n). It can be computed in O(n) time.

γ Vertices Edges Faces TotalNumber 1 6 6 13Complexity 1 17 41 53

Algorithms for 3D Printing and Other Manufacturing Methodologies 59

Page 60: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Zone of lines in an arrangement of Lines

The complexity of a zone is the total complexity of all features the zoneconsists of.

Theorem (Zone Complexity)The complexity of the zone of a line in an arrangement of n lines in theplane is O(n). It can be computed in O(n) time.

γ Vertices Edges Faces TotalNumber 1 6 6 13Complexity 1 17 41 53

Algorithms for 3D Printing and Other Manufacturing Methodologies 60

Page 61: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Zone of lines in an arrangement of Lines

The complexity of a zone is the total complexity of all features the zoneconsists of.

Theorem (Zone Complexity)The complexity of the zone of a line in an arrangement of n lines in theplane is O(n). It can be computed in O(n) time.

u

w

γ Vertices Edges Faces TotalNumber 1 7 7 15Complexity 1 21 53 68

Algorithms for 3D Printing and Other Manufacturing Methodologies 61

Page 62: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Zone of lines in arrangement of Lines ComplexityThe number of left bounding edges of the faces in the zone of γ is≤ 3nBy symmetry, the number of right bounding edges is ≤ 3n as wellProof by induction on n` is the line that has the rightmost intersection with γ

uw is a new left bounding edge—this adds 1` splits a left bounding edge at u and w—this adds ≤ 2

γ

The proof assumes generalposition

It can be extended tohandle degeneracies.

Algorithms for 3D Printing and Other Manufacturing Methodologies 62

Page 63: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Zone of lines in arrangement of Lines ComplexityThe number of left bounding edges of the faces in the zone of γ is≤ 3nBy symmetry, the number of right bounding edges is ≤ 3n as wellProof by induction on n` is the line that has the rightmost intersection with γ

uw is a new left bounding edge—this adds 1` splits a left bounding edge at u and w—this adds ≤ 2

`

γ

The proof assumes generalposition

It can be extended tohandle degeneracies.

Algorithms for 3D Printing and Other Manufacturing Methodologies 63

Page 64: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Zone of lines in arrangement of Lines ComplexityThe number of left bounding edges of the faces in the zone of γ is≤ 3nBy symmetry, the number of right bounding edges is ≤ 3n as wellProof by induction on n` is the line that has the rightmost intersection with γ

uw is a new left bounding edge—this adds 1` splits a left bounding edge at u and w—this adds ≤ 2

`u

w

γ

The proof assumes generalposition

It can be extended tohandle degeneracies.

Algorithms for 3D Printing and Other Manufacturing Methodologies 64

Page 65: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Zone Application: Incremental Insertion

Definition (Incremental Insertion)Given an x -monotone curve γ and an arrangement A induced by a set ofcurves C , where all curves in γ∪C are well behaved, insert γ into A .

Find the location of one endpoint of the curve γ in A .Traverse the zone of the curve γ.

Each time γ crosses an existing vertex v split γ at v into subcurves.Each time γ crosses an existing edge e split γ and e into subcurves,respectively.

Algorithms for 3D Printing and Other Manufacturing Methodologies 65

Page 66: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Zone Computation Algorithmic Framework

Arrangement_zone_2 class templateComputes the zone of an arrangement.Is part of 2D Arrangements package.Is parameterized with a zone visitor

Models the concept ZoneV i s i t o r_2Serves as the foundation of a family of concrete operations

Inserting a single curve into an arrangementF The visitor modifies the arrangement operand as the computation

progresses.Determining whether a query curve intersects with the curves of anarrangement.Determining whether a query curve passes through an existingarrangement vertex.

F If the answer is positive, the process can terminate as soon as thevertex is located.

Algorithms for 3D Printing and Other Manufacturing Methodologies 66

Page 67: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Incremental Insertion // F i l e : e x_ i n c r emen t a l _ i n s e r t i o n . cpp

#i n c l u d e <CGAL/ b a s i c . h>#i n c l u d e <CGAL/ Ar r_na i v e_po i n t_ l o c a t i o n . h>

#i n c l u d e " a r r_exac t_con s t r u c t i on_segmen t s . h"#i n c l u d e " a r r _ p r i n t . h"

i n t main ( )

// Cons t r u c t the ar rangement o f f i v e l i n e segments .Arrangement_2 a r r ;Na ive_p l p l ( a r r ) ;CGAL : : i n s e r t_non_ i n t e r s e c t i n g_ cu r v e ( a r r , Segment_2 ( Point_2 (1 , 0 ) , Point_2 (2 , 4 ) ) , p l ) ;CGAL : : i n s e r t_non_ i n t e r s e c t i n g_ cu r v e ( a r r , Segment_2 ( Point_2 (5 , 0 ) , Point_2 (5 , 5 ) ) ) ;CGAL : : i n s e r t ( a r r , Segment_2 ( Point_2 (1 , 0 ) , Point_2 (5 , 3 ) ) , p l ) ;CGAL : : i n s e r t ( a r r , Segment_2 ( Point_2 (0 , 2 ) , Point_2 (6 , 0 ) ) ) ;CGAL : : i n s e r t ( a r r , Segment_2 ( Point_2 (3 , 0 ) , Point_2 (5 , 5 ) ) , p l ) ;p r i n t_a r r angemen t_s i z e ( a r r ) ;r e t u r n 0 ;

s1

s2

s3

s4s5

Algorithms for 3D Printing and Other Manufacturing Methodologies 67

Page 68: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Outline

1 2D ArrangementsDefinitions & ComplexityRepresentationQueries

Vertical DecompositionPoint Location Queries

The Zone Computation Algorithmic FrameworkThe Plane Sweep Algorithmic FrameworkArrangement of Unbounded CurvesLiterature

Algorithms for 3D Printing and Other Manufacturing Methodologies 68

Page 69: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Plane Sweep Algorithmic Framework[BO79]

Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event

Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue

Algorithms for 3D Printing and Other Manufacturing Methodologies 69

Page 70: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Plane Sweep Algorithmic Framework[BO79]

Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event

Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue

Algorithms for 3D Printing and Other Manufacturing Methodologies 70

Page 71: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Plane Sweep Algorithmic Framework[BO79]

Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event

Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue

Algorithms for 3D Printing and Other Manufacturing Methodologies 71

Page 72: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Plane Sweep Algorithmic Framework[BO79]

Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event

Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue

Algorithms for 3D Printing and Other Manufacturing Methodologies 72

Page 73: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Plane Sweep Algorithmic Framework[BO79]

Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event

Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue

Algorithms for 3D Printing and Other Manufacturing Methodologies 73

Page 74: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Plane Sweep Algorithmic Framework[BO79]

Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event

Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue

Algorithms for 3D Printing and Other Manufacturing Methodologies 74

Page 75: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Plane Sweep Algorithmic Framework[BO79]

Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event

Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue

Algorithms for 3D Printing and Other Manufacturing Methodologies 75

Page 76: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Plane Sweep Algorithmic Framework[BO79]

Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event

Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue

Algorithms for 3D Printing and Other Manufacturing Methodologies 76

Page 77: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Plane Sweep Algorithmic Framework[BO79]

Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event

Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue

Algorithms for 3D Printing and Other Manufacturing Methodologies 77

Page 78: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Plane Sweep Algorithmic Framework[BO79]

Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event

Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue

Algorithms for 3D Printing and Other Manufacturing Methodologies 78

Page 79: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Plane Sweep Algorithmic Framework[BO79]

Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event

Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue

Algorithms for 3D Printing and Other Manufacturing Methodologies 79

Page 80: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep: Event Queue

Implemented as a balanced binary search tree (say red-black tree)Operations, m—number of events.

Fetching the next event—O(logm) amortized time.Testing whether an event exists—(O(logm) amortized time.

F Cannot use a heap!Inserting an event—O(logm) amortized time.

Algorithms for 3D Printing and Other Manufacturing Methodologies 80

Page 81: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep: Status Structure

Is a dynamic one-dimensional arrangement along the sweep line.Implemented as a balanced binary search tree

Interior nodes —- guide the search, store the segment from therightmost leaf in its left subtree.Leaf nodes — segments.

Operations—O(logn) amortized time.

s1

s2

s3s4

s5`

s3

s1

s1 s2

s2 s3

s4

s4 s5

Algorithms for 3D Printing and Other Manufacturing Methodologies 81

Page 82: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.

C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event

p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.

If p has right curves≤ 2 events are generated.

Algorithms for 3D Printing and Other Manufacturing Methodologies 82

Page 83: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.

C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event

p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.

If p has right curves≤ 2 events are generated.

Algorithms for 3D Printing and Other Manufacturing Methodologies 83

Page 84: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.

C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event

p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.

If p has right curves≤ 2 events are generated.

Algorithms for 3D Printing and Other Manufacturing Methodologies 84

Page 85: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.

C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event

p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.

If p has right curves≤ 2 events are generated.

Algorithms for 3D Printing and Other Manufacturing Methodologies 85

Page 86: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.

C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event

p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.

If p has right curves≤ 2 events are generated.

Algorithms for 3D Printing and Other Manufacturing Methodologies 86

Page 87: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.

C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event

p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.

If p has right curves≤ 2 events are generated.

Algorithms for 3D Printing and Other Manufacturing Methodologies 87

Page 88: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.

C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event

p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.

If p has right curves≤ 2 events are generated.

Algorithms for 3D Printing and Other Manufacturing Methodologies 88

Page 89: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.

C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event

p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.

If p has right curves≤ 2 events are generated.

Algorithms for 3D Printing and Other Manufacturing Methodologies 89

Page 90: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.

C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event

p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.

If p has right curves≤ 2 events are generated.

Algorithms for 3D Printing and Other Manufacturing Methodologies 90

Page 91: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.

C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event

p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.

If p has right curves≤ 2 events are generated.

Algorithms for 3D Printing and Other Manufacturing Methodologies 91

Page 92: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.

C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event

p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.

If p has right curves≤ 2 events are generated.

Algorithms for 3D Printing and Other Manufacturing Methodologies 92

Page 93: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.

C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event

p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.

If p has right curves≤ 2 events are generated.

Algorithms for 3D Printing and Other Manufacturing Methodologies 93

Page 94: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.

C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event

p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.

If p has right curves≤ 2 events are generated.

Algorithms for 3D Printing and Other Manufacturing Methodologies 94

Page 95: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.

C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event

p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.

If p has right curves≤ 2 events are generated.

Algorithms for 3D Printing and Other Manufacturing Methodologies 95

Page 96: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.

C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event

p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.

If p has right curves≤ 2 events are generated.

Algorithms for 3D Printing and Other Manufacturing Methodologies 96

Page 97: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.

C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event

p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.

If p has right curves≤ 2 events are generated.

Algorithms for 3D Printing and Other Manufacturing Methodologies 97

Page 98: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.

C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event

p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.

If p has right curves≤ 2 events are generated.

Algorithms for 3D Printing and Other Manufacturing Methodologies 98

Page 99: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Plane Sweep Space Complexity

The status-structure size is in O(n)The event-queue size is definitely at most 2n+kIt can be shown that the event-queue size is in O(n log2 n)The event-queue size can be kept linear.

Points of intersections between pairs of curves that are not adjacent onthe sweep line are deleted from the event queue.It increases the time complexity but only by a constant factor

Algorithms for 3D Printing and Other Manufacturing Methodologies 99

Page 100: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Aggregate Insertion // F i l e : e x_agg r e g a t e d_ i n s e r t i o n . cpp

#i n c l u d e " a r r_exac t_con s t r u c t i on_segmen t s . h"#i n c l u d e " a r r _ p r i n t . h"

i n t main ( )

// Agg r ega t e l y c o n s t r u c t the ar rangement o f f i v e l i n e segments .Segment_2 segments [ ] = Segment_2 ( Point_2 (1 , 0 ) , Point_2 (2 , 4 ) ) ,

Segment_2 ( Point_2 (5 , 0 ) , Point_2 (5 , 5 ) ) ,Segment_2 ( Point_2 (1 , 0 ) , Point_2 (5 , 3 ) ) ,Segment_2 ( Point_2 (0 , 2 ) , Point_2 (6 , 0 ) ) ,Segment_2 ( Point_2 (3 , 0 ) , Point_2 (5 , 5 ) ) ;

Arrangement_2 a r r ;CGAL : : i n s e r t ( a r r , segments , segments + s i z e o f ( segments )/ s i z e o f ( Segment_2 ) ) ;p r i n t_a r r angemen t_s i z e ( a r r ) ;r e t u r n 0 ;

s1

s2

s3

s4s5

Algorithms for 3D Printing and Other Manufacturing Methodologies 100

Page 101: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Outline

1 2D ArrangementsDefinitions & ComplexityRepresentationQueries

Vertical DecompositionPoint Location Queries

The Zone Computation Algorithmic FrameworkThe Plane Sweep Algorithmic FrameworkArrangement of Unbounded CurvesLiterature

Algorithms for 3D Printing and Other Manufacturing Methodologies 101

Page 102: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Handling Enpoints at InfinityClipping the unbounded curves Using an infimaximal box

[Mehlhorn & Seel, 2003]

Simple, the sweep algorithm isunchanged

Not simpleMay require large bit-lengthsDesigned for linear objects

Not online Online (no need for clipping)

The resulting arrangement has asingle unbounded face

The resulting arrangement hasmultiple unbounded faces (anda single ficticious face)

Algorithms for 3D Printing and Other Manufacturing Methodologies 102

Page 103: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Arrangement of (Unbounded) Lines

vbl

vtl

vbr

vtr

v1

v8

v2 v7

v3

v6

v4

v5

Algorithms for 3D Printing and Other Manufacturing Methodologies 103

Page 104: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Vertices of Unbounded ArrangementThere are 4 types of unbounded-arrangement vertices

1 A “normal” vertex associated with a point in IR2.2 A vertex that represents an unbounded end of an x -monotone curve

that approaches x =−∞ or x = ∞.3 A vertex that represents the unbounded end of a vertical line or ray or

of a curve with a vertical asymptote (finite x -coordinate and anunbounded y -coordinate).

4 A fictitious vertices that represents one of 4 corners of the imaginarybounding rectangle.

A vertex at infinity of Type 2 or Type 3 alwayshas three incident edges:

1 edge associated with an x -monotone curve, and2 fictitious edges connecting the vertex to its adjacentvertices at infinity or the corners of the boundingrectangle.

Algorithms for 3D Printing and Other Manufacturing Methodologies 104

Page 105: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Sweeping Unbounded Curves

Curves may not have finite endpointsInitializing the event queue requires special treatment

Intersection events are associated with finite points

xy = 1, x = 0, and y = 0

Algorithms for 3D Printing and Other Manufacturing Methodologies 105

Page 106: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Augmented Sweep Line for Unbounded Curves

Categorize all curve endsInitialize an event queue with all curve ends sorted lex.

Ends of unbounded curves do not coincideComparison between events are available through the traits

While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!

Algorithms for 3D Printing and Other Manufacturing Methodologies 106

Page 107: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Augmented Sweep Line for Unbounded Curves

Categorize all curve endsInitialize an event queue with all curve ends sorted lex.

Ends of unbounded curves do not coincideComparison between events are available through the traits

While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!

Algorithms for 3D Printing and Other Manufacturing Methodologies 107

Page 108: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Augmented Sweep Line for Unbounded Curves

Categorize all curve endsInitialize an event queue with all curve ends sorted lex.

Ends of unbounded curves do not coincideComparison between events are available through the traits

While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!

Algorithms for 3D Printing and Other Manufacturing Methodologies 108

Page 109: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Augmented Sweep Line for Unbounded Curves

Categorize all curve endsInitialize an event queue with all curve ends sorted lex.

Ends of unbounded curves do not coincideComparison between events are available through the traits

While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!

Algorithms for 3D Printing and Other Manufacturing Methodologies 109

Page 110: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Augmented Sweep Line for Unbounded Curves

Categorize all curve endsInitialize an event queue with all curve ends sorted lex.

Ends of unbounded curves do not coincideComparison between events are available through the traits

While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!

Algorithms for 3D Printing and Other Manufacturing Methodologies 110

Page 111: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Augmented Sweep Line for Unbounded Curves

Categorize all curve endsInitialize an event queue with all curve ends sorted lex.

Ends of unbounded curves do not coincideComparison between events are available through the traits

While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!

Algorithms for 3D Printing and Other Manufacturing Methodologies 111

Page 112: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Augmented Sweep Line for Unbounded Curves

Categorize all curve endsInitialize an event queue with all curve ends sorted lex.

Ends of unbounded curves do not coincideComparison between events are available through the traits

While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!

Algorithms for 3D Printing and Other Manufacturing Methodologies 112

Page 113: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Augmented Sweep Line for Unbounded Curves

Categorize all curve endsInitialize an event queue with all curve ends sorted lex.

Ends of unbounded curves do not coincideComparison between events are available through the traits

While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!

Algorithms for 3D Printing and Other Manufacturing Methodologies 113

Page 114: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Augmented Sweep Line for Unbounded Curves

Categorize all curve endsInitialize an event queue with all curve ends sorted lex.

Ends of unbounded curves do not coincideComparison between events are available through the traits

While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!

Algorithms for 3D Printing and Other Manufacturing Methodologies 114

Page 115: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Augmented Sweep Line for Unbounded Curves

Categorize all curve endsInitialize an event queue with all curve ends sorted lex.

Ends of unbounded curves do not coincideComparison between events are available through the traits

While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!

Algorithms for 3D Printing and Other Manufacturing Methodologies 115

Page 116: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Augmented Sweep Line for Unbounded Curves

Categorize all curve endsInitialize an event queue with all curve ends sorted lex.

Ends of unbounded curves do not coincideComparison between events are available through the traits

While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!

Algorithms for 3D Printing and Other Manufacturing Methodologies 116

Page 117: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

The Augmented Sweep Line for Unbounded Curves

Categorize all curve endsInitialize an event queue with all curve ends sorted lex.

Ends of unbounded curves do not coincideComparison between events are available through the traits

While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!

Algorithms for 3D Printing and Other Manufacturing Methodologies 117

Page 118: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Outline

1 2D ArrangementsDefinitions & ComplexityRepresentationQueries

Vertical DecompositionPoint Location Queries

The Zone Computation Algorithmic FrameworkThe Plane Sweep Algorithmic FrameworkArrangement of Unbounded CurvesLiterature

Algorithms for 3D Printing and Other Manufacturing Methodologies 118

Page 119: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Arrangement Bibliography IBoris Aronov and Dmitriy DrusvyatskiyComplexity of a Single Face in an Arrangement of s-Intersecting CurvesarXiv:1108.4336, 2011

Jon Louis Bentley and Thomas Ottmann.Algorithms for Reporting and Counting Geometric Intersections.IEEE Transactions on Computers, 28(9): 643–647, 1979.

Eric Berberich, Efi Fogel, Dan Halperin, Michael Kerber, and Ophir Setter.Arrangements on parametric surfaces ii: Concretizations and applications, 2009.Mathematics in Computer Science, 4(1):67–91,2010.

Ulrich Finke and Klaus H. Hinrichs.Overlaying simply connected planar subdivisions in linear time.In Proceedings of 11th Annual ACM Symposium on Computational Geometry (SoCG), pages 119–126. Association forComputing Machinery (ACM) Press, 1995.

Ron Wein, Efi Fogel, Baruch Zukerman, Dan Halperin, and Eric Berberich.2D Arrangements.In Cgal Editorial Board, editor, Cgal User and Reference Manual. 4.4 edition, 2014.http://www.cgal.org/Manual/latest/doc_html/cgal_manual/packages.html#Pkg:Arrangement2.

David G. Kirkpatrick.Optimal search in planar subdivisions.SIAM Journal on Computing. 12(1):28–35,1983.

N. Sarnak and Robert E. Tarjan.Planar point location using persistent search trees.Communications of the ACM. 29(7):669–679, 1986.

Kentan Mulmuley.A fast planar partition algorithm, I.Journal of Symbolic Computation. 10(3-4):253–280,1990.

Algorithms for 3D Printing and Other Manufacturing Methodologies 119

Page 120: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Arrangement Bibliography IIRaimund SeidelA Simple and Fast Incremental Randomized Algorithm for Computing Trapezoidal Decompositions and for TriangulatingPolygons.Computational Geometry: Theory and Applications. 1(1):51–64, 1991.

Olivier Devillers, Sylvain Pion, and Monique Teillaud.Walking in a triangulation.International Journal of Foundations of Computer Science. 13:181–199,2002.

Luc Devroye Christophe, Christophe Lemaire, and Jean-Michel Moreau.Fast Delaunay Point-Location with Search Structures.In Proceedings of 11th Canadian Conference on Computational Geometry. Pages 136–141, 1999.

Luc Devroye, Ernst Peter Mücke, and Binhai Zhu.A Note on Point Location in Delaunay Triangulations of Random Points.Algorithmica. 22:477–482, 1998.

Olivier Devillers.The Delaunay hierarchy.International Journal of Foundations of Computer Science. 13:163-180, 2002.

Sunil AryaA Simple Entropy-Based Algorithm for Planar Point Location.ACM Transactions on Graphics. 3(2), 2007

Masato Edahiro, Iwao Kokubo, And Takao AsanoA new Point-Location Algorithm and its Practical Efficiency: comparison with existing algorithmsACM Transactions on Graphics. 3(2):86–109, 1984.

Micha Sharir and Pankaj Kumar AgarwalDavenport-Schinzel Sequences and Their Geometric Applications.Cambridge University Press, New York, NY, 1995.

Algorithms for 3D Printing and Other Manufacturing Methodologies 120

Page 121: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Arrangement Bibliography III

Bernard Chazelle, Leonidas J. Guibas, and Der-Tsai Le.The Power of Geometric Duality.BIT, 25:76–90, 1985.

Herbert Edelsbrunner,Algorithms in Combinatorial Geometry,Springer, Heidelberg, 1987.

Mark de Berg, Mark van Kreveld, Mark H. Overmars, and Otfried Cheong.Computational Geometry: Algorithms and Applications.Springer, 3rd edition, 2008.

Herbert Edelsbrunner, Raimund Seidel, and Micha Sharir.On the Zone Theorem for Hyperplane Arrangements.SIAM Journal on Computing. 22(2):418–429,1993.

Silvio Micali and Vijay V. Vazirani.An O(

√|V ||E |) Algorithm for Finding Maximum Matching in General Graphs.

Proceedings of 21st Annual IEEE Symposium on the Foundations of Computer Science, pages 17–27, 1980.

Jack Edmonds.Paths, Trees, and Flowers.Canadian Journal of Mathematics, 17:449–467,1965.

Robert Endre Tarjan.Data structures and network algorithms, Society for Industrial and Applied Mathematics (SIAM), 1983.

Marcin Mucha and Piotr Sankowski.Maximum Matchings via Gaussian EliminationProceedings of 45th Annual IEEE Symposium on the Foundations of Computer Science, pages 248–255, 2004.

Algorithms for 3D Printing and Other Manufacturing Methodologies 121

Page 122: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane

Arrangement Bibliography IV

Jeremy G. Siek, Lie-Quan Lee, and Andrew Lumsdaine.The Boost Graph Library.Addison-Wesley, 2002

Efi Fogel, Ron Wein, and Dan Halperin.Cgal Arrangements and Their Applications, A Step-by-Step Guide.Springer, 2012.

Algorithms for 3D Printing and Other Manufacturing Methodologies 122