i MAGIS is a joint project of CNRS - INPG - INRIA - UJF iMAGIS-GRAVIR / IMAG A simple kinetic visibility polygon EWCG’02 Samuel Hornus, Claude Puech
iMAGIS-GRAVIR / IMAG Hypothesis : simply-polygonal obstacles known algebraic motion (everything can move) Goals : maintaining the visibility polygon continuously Solution : Kinetic Data Structure framework
iMAGIS-GRAVIR / IMAG Overview Kinetic Data Structures (KDS) Visibility polygon Detecting crossing events Updating the visibility polygon Conclusion contributions
iMAGIS-GRAVIR / IMAG Overview Kinetic Data Structures (KDS) Visibility polygon Detecting crossing events Updating the visibility polygon Conclusion
iMAGIS-GRAVIR / IMAG Kinetic Data Structures Moving Items (points, segments, …) Attributes on the items (convex hull, voronoï diagram) given with a proof of correctness for the static case Idea : animating the proof through time when items are moving certificate failure [Bash and Guibas 95]
iMAGIS-GRAVIR / IMAG Kinetic Data Structures Proof of correctness Certificate failure Proof updateAttribute update [Bash and Guibas 95]
iMAGIS-GRAVIR / IMAG Overview Kinetic Data Structures (KDS) Visibility polygon Detecting crossing events Updating the visibility polygon Conclusion
iMAGIS-GRAVIR / IMAG Visibility polygon n vertices / edges Cyclically ordered set of the n tangent rays The visible edge is stored between each pair of tangent rays
iMAGIS-GRAVIR / IMAG Overview Kinetic Data Structures (KDS) Visibility polygon Detecting crossing events Updating the visibility polygon Conclusion
iMAGIS-GRAVIR / IMAG Detecting Events consecutive rays in the ordered set
iMAGIS-GRAVIR / IMAG Detecting Events crossing event !
iMAGIS-GRAVIR / IMAG Detecting Events next crossing event
iMAGIS-GRAVIR / IMAG Detecting Events
iMAGIS-GRAVIR / IMAG Overview Kinetic Data Structures (KDS) Visibility polygon Detecting crossing events Updating the visibility polygon Conclusion
iMAGIS-GRAVIR / IMAG Updating the Visibility Polygon Knowing only the visibility polygon is not enough to maintain it, we need more data… We will use a weak radial decomposition of the scene.
iMAGIS-GRAVIR / IMAG Updating the Visibility Polygon Each tangent ray consists of - the vertex of « tangency »
iMAGIS-GRAVIR / IMAG Updating the Visibility Polygon Each tangent ray consists of - the vertex of « tangency » - the hit edge along the ray, beyond the vertex of tangency
iMAGIS-GRAVIR / IMAG Updating the Visibility Polygon Each tangent ray consists of -the vertex of « tangency » - the hit edge along the ray -the visible edge at its left
iMAGIS-GRAVIR / IMAG Updating the Visibility Polygon Each tangent ray consists of -the vertex of « tangency » - the hit edge along the ray -the visible edge at its left -the type of the tangency vertex see next slide…
iMAGIS-GRAVIR / IMAG Updating the Visibility Polygon Tangent ray type
iMAGIS-GRAVIR / IMAG Updating the Visibility Polygon R L hit2 hit1 Before the crossing
iMAGIS-GRAVIR / IMAG Updating the Visibility Polygon There is no other tangent ray between these ones Before the crossing R L hit2 hit1
iMAGIS-GRAVIR / IMAG Updating the Visibility Polygon C R L hit2 hit1 There is no other tangent ray between these ones Before the crossing C exists if and only if hit1 is different from hit2
iMAGIS-GRAVIR / IMAG Updating the Visibility Polygon R L hit2 hit1 Before the crossing, when C does not exist visible = hit2 = hit1
iMAGIS-GRAVIR / IMAG Updating the Visibility Polygon After the crossing, R L hit1 := R hit2 R L hit1 Before the crossing, when C does not exist visible = hit2 = hit1 visible := L
iMAGIS-GRAVIR / IMAG Updating the Visibility Polygon R L hit2 Before the crossing, when C does not exist visible = C C hit1 = C
iMAGIS-GRAVIR / IMAG Updating the Visibility Polygon After the crossing, L C R hit1 hit2 R L Before the crossing, when C exists visible = C C visible := L hit1 = C
iMAGIS-GRAVIR / IMAG Conclusion Pros Concave (simple) polygons Constant time processing of an event Cons High quantity of crossing events Future Work What about 3d ?
iMAGIS-GRAVIR / IMAG A simple kinetic visibility polygon Thank you for your attention Any questions ?