13.07.2015 Views

Construction of Iso-contours, Bisectors and Voronoi Diagrams on ...

Construction of Iso-contours, Bisectors and Voronoi Diagrams on ...

Construction of Iso-contours, Bisectors and Voronoi Diagrams on ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL. 33, NO. 8, PAGE 1502-1517, AUGUST 2011 8is the distance field value difference between neighborsnb i <str<strong>on</strong>g>and</str<strong>on</strong>g> v. Finally the elements in a reduced vertex listL c are the extracted critical points.5.1.1 Models with Single-Piece <str<strong>on</strong>g>Iso</str<strong>on</strong>g>-C<strong>on</strong>tourIf a triangulated surface M has no critical points withindices 1 or 3, by Property 1, any iso-c<strong>on</strong>tour <strong>on</strong> it is a s-ingle closed curve. To explicitly c<strong>on</strong>struct the iso-c<strong>on</strong>tourwith any prescribed value <strong>on</strong> this kind <str<strong>on</strong>g>of</str<strong>on</strong>g> models, wepreprocess the model as follows. Given a source pointp, we compute the geodesic distance field <strong>on</strong> M <str<strong>on</strong>g>and</str<strong>on</strong>g>find the farthest point q <strong>on</strong> M. Then we c<strong>on</strong>struct ageodesic path from p to q. The path goes through a set<str<strong>on</strong>g>of</str<strong>on</strong>g> triangles: each <str<strong>on</strong>g>of</str<strong>on</strong>g> them covers a distance interval <str<strong>on</strong>g>and</str<strong>on</strong>g>all the intervals in them are c<strong>on</strong>tinuous in t<str<strong>on</strong>g>and</str<strong>on</strong>g>em. Wesort these triangles into a binary tree indexed by thedistance interval. To c<strong>on</strong>struct a particular iso-c<strong>on</strong>tour,we search the binary tree <str<strong>on</strong>g>and</str<strong>on</strong>g> find the triangle whosedistance interval c<strong>on</strong>tains the iso-c<strong>on</strong>tour value.Given a starting triangle, the algorithm runs in amarching process. Without loss <str<strong>on</strong>g>of</str<strong>on</strong>g> generality, we assumethat the iso-c<strong>on</strong>tour value is zero. Given the first trianglethrough which the iso-c<strong>on</strong>tour passes, we trace the isoc<strong>on</strong>tourusing the edge which has the opposite signsat its two vertices. Each such edge guides the isoc<strong>on</strong>tourfrom <strong>on</strong>e triangle to another triangle. For eachmarched triangle, the inside iso-c<strong>on</strong>tour is determinedby Property 6. If the iso-c<strong>on</strong>tour goes through a vertexv <str<strong>on</strong>g>of</str<strong>on</strong>g> M, the 1-ring neighbor triangles <str<strong>on</strong>g>of</str<strong>on</strong>g> v is checkedto find the next triangle to be marched. Our marchingmethod is topology-oriented, since we first check thesign <str<strong>on</strong>g>of</str<strong>on</strong>g> vertices <str<strong>on</strong>g>of</str<strong>on</strong>g> each marched triangle. So our methodis robust to degeneracy <str<strong>on</strong>g>and</str<strong>on</strong>g> is topologically c<strong>on</strong>sistent.Property 7: The iso-c<strong>on</strong>tour c<strong>on</strong>structi<strong>on</strong> algorithmfor preprocessed models with single-piece iso-<str<strong>on</strong>g>c<strong>on</strong>tours</str<strong>on</strong>g>takes O(log n ′ + k) time, where k is the number <str<strong>on</strong>g>of</str<strong>on</strong>g>triangles through which the iso-c<strong>on</strong>tour passes.To see the above property, note that the geodesic path<str<strong>on</strong>g>and</str<strong>on</strong>g> the iso-c<strong>on</strong>tour both have the O(n ′ ) complexity inpreprocessed models. So searching the binary tree takesO(log n ′ ) time to identify the starting triangle <str<strong>on</strong>g>and</str<strong>on</strong>g> themarching process takes O(k) time. Finally the overallcomplexity is O(log n ′ + k).5.1.2 Arbitrary Genus-r (r ≥ 0) ModelsThe algorithm for arbitrary genus-r models is morecomplicated than that for models studied in Secti<strong>on</strong> 5.1.1.We preprocess the model as follows. We compute thegeodesic distance field with a prescribed source p <strong>on</strong> M.Each triangle in M covers a distance interval. We sortall triangles in M into an interval tree [13], [42] indexedby the distance interval <str<strong>on</strong>g>of</str<strong>on</strong>g> each triangle.The genus-r iso-c<strong>on</strong>tour algorithm also runs in amarching process. Given a particular iso-c<strong>on</strong>tour value,we search the interval tree for stabbing query <str<strong>on</strong>g>and</str<strong>on</strong>g>sort all the triangles, whose distance interval coversthe iso-c<strong>on</strong>tour value into a queue Que. The followingalgorithm reports the inquired iso-c<strong>on</strong>tour with thenumber <str<strong>on</strong>g>of</str<strong>on</strong>g> closed curves.Algorithm 1: genus_r_iso<str<strong>on</strong>g>c<strong>on</strong>tours</str<strong>on</strong>g>(M, c)Input. An iso-c<strong>on</strong>tour value c, a preprocessed mesh Mwith c<strong>on</strong>structed distance field <str<strong>on</strong>g>and</str<strong>on</strong>g> interval tree.Output. The requested iso-c<strong>on</strong>tour with the number <str<strong>on</strong>g>of</str<strong>on</strong>g>closed curves.1. Stabbing query in the interval tree <str<strong>on</strong>g>and</str<strong>on</strong>g> outputthe result in a queue Que;2. Set curve number cn = 0;3. While (Que is not empty)3.1. cn = cn + 1;3.2. Pop the first element t <str<strong>on</strong>g>of</str<strong>on</strong>g> Que;3.3. Marching triangles with the initial triangle t;3.4. Remove all the marched triangles from Que.Property 8: Algorithm 1 for arbitrary genus-r modelstakes O(log n ′ + k log k) time, where k is the number <str<strong>on</strong>g>of</str<strong>on</strong>g>triangles through which the iso-c<strong>on</strong>tour passed.We sketch the pro<str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> Property 8 as follows. Aninterval tree for a set <str<strong>on</strong>g>of</str<strong>on</strong>g> n ′ intervals reports all intervalsthat c<strong>on</strong>tain a query point in O(log n ′ + k) time, wherek is the number <str<strong>on</strong>g>of</str<strong>on</strong>g> reported intervals [13], [42]. The Quecan be built in O(k) time <str<strong>on</strong>g>and</str<strong>on</strong>g> removing an element witha specified key from Que takes O(log k) time [12]. SoAlgorithm 1 runs in O(log n ′ + k log k) time.Before running Algorithm 1, the distance field <strong>on</strong> M isc<strong>on</strong>structed in O(n 2 log n) time [45] <str<strong>on</strong>g>and</str<strong>on</strong>g> an interval tree isc<strong>on</strong>structed for all the triangles in M in O(n ′ log n ′ ) time.Since multiple point sources behave like pseudo-sources,the c<strong>on</strong>structi<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> iso-<str<strong>on</strong>g>c<strong>on</strong>tours</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> multiple sources isidentical to that <str<strong>on</strong>g>of</str<strong>on</strong>g> a single source.5.2 <str<strong>on</strong>g>Bisectors</str<strong>on</strong>g>According to Definiti<strong>on</strong> 3, the singular loci <str<strong>on</strong>g>of</str<strong>on</strong>g> a multisourcegeodesic distance field c<strong>on</strong>tain the trimmed bisectorsthat c<strong>on</strong>tribute to the Vornoi diagram <str<strong>on</strong>g>of</str<strong>on</strong>g> the pointsource set P <strong>on</strong> M. In this secti<strong>on</strong>, we explicitly c<strong>on</strong>structthe bisector <str<strong>on</strong>g>of</str<strong>on</strong>g> two source points p <str<strong>on</strong>g>and</str<strong>on</strong>g> q <strong>on</strong> M.Property 9: The bisector B(p, q) goes through an edgee at the locati<strong>on</strong> that delimits two visibility wedges at e<str<strong>on</strong>g>and</str<strong>on</strong>g> the two wedges have the source point ID Id pt = p<str<strong>on</strong>g>and</str<strong>on</strong>g> Id pt = q, respectively.Preprocess. In the worst case, <strong>on</strong>e bisector can gothrough a triangle as many as n times [48], [40].Similar to iso-c<strong>on</strong>tour c<strong>on</strong>structi<strong>on</strong>, the mesh modelis also preprocessed to avoid this hypothetical worstcasecomplexity. We first examine each edge in M<str<strong>on</strong>g>and</str<strong>on</strong>g> guarantee that each edge c<strong>on</strong>tains at most <strong>on</strong>eintersecti<strong>on</strong> point with the bisector: if this is not thecase, the edge is subdivided. Denote the number <str<strong>on</strong>g>of</str<strong>on</strong>g>triangles in a preprocessed mesh by n ′ . Starting fromp <str<strong>on</strong>g>and</str<strong>on</strong>g> q, we propagate the visibility wedges in ac<strong>on</strong>tinuous-Dijkstra fashi<strong>on</strong>. During propagati<strong>on</strong>, weuse a list to store those edges at which a visibilitywedge is updated with a neighbor wedge bel<strong>on</strong>gingto a different source. To the end, the edge list isc<strong>on</strong>verted into a queue Que which c<strong>on</strong>tains all thetriangles through which the bisector passes. Similar to

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!