Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Iteration over Voronoi faces

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Iteration over Voronoi faces


Chronological Thread 
  • From: Stefan Witzel <>
  • To:
  • Subject: Re: [cgal-discuss] Iteration over Voronoi faces
  • Date: Fri, 14 Jun 2019 14:13:56 +0200
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-phdr: 9a23:yjl2SxLISePB8hWyCdmcpTZWNBhigK39O0sv0rFitYgeL/nxwZ3uMQTl6Ol3ixeRBMOHsqsC0rSP+Py9EUU7or+5+EgYd5JNUxJXwe43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQviPgRpOOv1BpTSj8Oq3Oyu5pHfeQpFiCegbb9oMRm7rBjdusYZjIZiN6081gbHrnxUdupM2GhmP0iTnxHy5sex+J5s7SFdsO8/+sBDTKv3Yb02QaRXAzo6PW814tbrtQTYQguU+nQcSGQWnQFWDAXD8Rr3Q43+sir+tup6xSmaIcj7Rq06VDi+86tmTgLjhSEaPDA77W7XkNR9g61VoB2jvRxxw4DaboKIOvRgYqzQZs8aSXZbU8pNSyBNHoGxYo0SBOQBJ+ZYqIz9qkMToxuiGwasCvngyjlVjXD23K06z+UgHh/C3Ac9GN8Oq2jUrdv0NKcOUOG60q3IwC7Mb/NTwzj96YzIfgo9rvGLWLJ9aMzcwlQhGQPCi1Wfs43lPzWN2+QMtWib9etgWvi1h24psQF9uiSgxsg2hYnNnI4VzUrE9Sp/zY0oJtO4UFZ2bcC4HJZUrS2XNIt7Ttk8T212pSo20LwLtJ+9cSMX0poo3QTfZOaCc4WQ4hLsSuKRITBgiXJgYr2/hhKy/VGuy+3mS8W4yVhKoytEn9XWuXAN0BvT6seDSvRj5EuuxTGP1wXL5uFFJ0A7i7bbJoY/zrIskpcfq0fOEy/slEnokqOaa18o9+mp5uj/Z7XpvJ6cN4t6igHkNaQun9SyAf8kMgkAXmib5eW926Pn/UDiT7VKi+c5kqjdsJzAOcsboau5DxdP0ok/8xa/Eyum0NMAkHYbI1JKYhaHg5H0NFHPO/D3Eeq/g0+3kDpw3PDHPrjhAo3XIXTZkbfhe6x9609GxwYpw9Bf/cEcN7caPfimWlPtrMeKSVgiIgmsyqDmDs9838UQQyWUE6qBOeTTt1GPoekgKu3JaI4OsyvmMKsZ4KvlgnY93FMcZqK0xoA/aXaiH/0gLV/KW3f0hsY9FjIRoQsiXuHuoFiLTT4VenCzGqg96zU2Bo+iAcHPS9ODmruEiRynE5NfYCh5C0yeHHOgI56YRPYQei+WCsBkmz0AE7OmTtlyhlmVqAbmxu8/faLv8SoCuMe7jYkn16jojRg3sAdMIYGY2mCJQXtzmzpRFTAz1aF750d6zwXaiPUqs7ljDdVWoshxfEI6OJrblbEoDtnzXkfeZI7MRgj4BNqhBj41Q5Q6xNpcOx8hSeXntQjK2m+RO5FQj6aCXcVm/afV3ny3LMF4mS7L

Hello again,

I have the following piece of code where dt is a hyperbolic Delaunay
triangulation, and vt is a vertex handle.

ecr = vt->incident_edges();
do
{
if (!dt.is_Delaunay_hyperbolic(*ecr)) {
break;
}
process(dt.dual(*ecr));
} while (++ecr != vt->incident_edges());

Now I would like that the ecr->target() in one iteration is
ecr->source() of the next iteration (I'm sweeping casting of ecr to a
Euclidean_segment_2 respectively Circular_arc_2 under the rug). Now my
problem is that not only is this not the case but neither does there
seem to be any kind of pattern. So my question is: is there any way to
predict the orientation of the dual segment of a (hyperbolic) Delaunay
triangulation? Thanks in advance!

Best,
Stefan

Am Fr., 14. Juni 2019 um 11:20 Uhr schrieb Stefan Witzel
<>:
>
> Dear Mael,
>
> Thank you for this nice explanation! I have in fact run into issues
> with non-hyperbolic faces which I had understood mathematically and
> thanks to you now understand also on the software level.
>
> Best,
> Stefan
>
> Am Fr., 14. Juni 2019 um 08:12 Uhr schrieb Mael
> <>:
> >
> > Hello,
> >
> > This is usually the case, if you look at the documentation page of e.g.
> > Regular_triangulation_2, you'll see a section "Additional Inherited
> > Members", which contains exactly what you have in mind (typedefs and
> > functions from Triangulation_2).
> >
> > Hyperbolic_Delaunay_triangulation_2 (HDT2) is a little bit different
> > because it inherits Delaunay_triangulation_2 (DT2), but in a private
> > way. This is done exactly so that not everything from DT2 is shown in
> > the documentation. This is because the simplicies in a HDT2 form only a
> > subset of the simplices of a DT2. Thus, we are internally building a DT2
> > and the class HDT2 is just a filter on top of the DT2.
> >
> > You can use the functions from DT2 (or even T2, which DT2 inherits), but
> > be careful that you will then be working with the full DT2 structure and
> > not the HDT2. You can apply hyperbolic filtering manually via the
> > "is_hyperbolic()" family of functions to bring things back to HDT2.
> >
> > Best,
> > Mael
> >
> > On 13/06/2019 22:15, Stefan Witzel wrote:
> > > Hi,
> > >
> > > Sorry about my last question! In case someone is actually wondering:
> > > the answer are face circulators [1]. The documentation would be much
> > > more accessible if one could see all the inherited methods somewhere.
> > > I was looking at the documentation for
> > > Hyperbolic_Delaunay_triangulation_2 and from there it's a bit of a way
> > > down to Triangulation_2, especially when you are wondering about the
> > > traits and data structures along the way.
> > >
> > > Best,
> > > Stefan
> > >
> > > [1]
> > > https://doc.cgal.org/latest/Triangulation_2/classCGAL_1_1Triangulation__2.html#a1bda2ab92ccf638bb22fc223ae281b96
> > >
> > > Am Do., 13. Juni 2019 um 16:32 Uhr schrieb Stefan Witzel
> > > <>:
> > >> Hello,
> > >>
> > >> I do not have any previous experience with cgal and my question is a
> > >> rather conceptual one without much technical insight: I would like to
> > >> iterate over the faces of a Voronoi diagram and then over the edges of
> > >> each face (to obtain a closed polygon); in other words this means to
> > >> iterate over the vertices of a Delaunay triangulation and then over
> > >> the edges incident with this vertex. Am I right to assume that this is
> > >> fundamentally problematic with the default parameters for
> > >> Delaunay_triangulation_2 (Triangulation_vertex_base_2,
> > >> Triangulation_face_base_2) as a vertex does not ``know'' the edges it
> > >> is incident with? Is there a kind of dual assignment that I could use
> > >> (like ``(Tessellation_face_base, Tessellation_vertex_base)'')?
> > >>
> > >> Since tessellations into non-triangles may be more complicated, would
> > >> it be a possibility to first produce the (common) barycentric
> > >> subdivision?
> > >>
> > >> Best,
> > >> Stefan
> >
> > --
> > You are currently subscribed to cgal-discuss.
> > To unsubscribe or access the archives, go to
> > https://sympa.inria.fr/sympa/info/cgal-discuss
> >
> >



Archive powered by MHonArc 2.6.18.

Top of Page