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: Mon, 17 Jun 2019 16:54:35 +0200
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-phdr: 9a23:v2PoPB024RgUbts5smDT+DRfVm0co7zxezQtwd8ZseITI/ad9pjvdHbS+e9qxAeQG9mCsrQd1bWd4/mocFdDyK7JiGoFfp1IWk1NouQttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZrKeTpAI7SiNm82/yv95HJbAhEmSexbalvIBi3rwjducobjZZ/Iast1xXFpWdFdf5Lzm1yP1KTmBj85sa0/JF99ilbpuws+c1dX6jkZqo0VbNXAigoPGAz/83rqALMTRCT6XsGU2UZiQRHDg7Y5xznRJjxsy/6tu1g2CmGOMD9UL45VSi+46ptVRTljjoMOTwk/2HNksFwlr9VrgyvpxJ/wIDabo+aO/V8cazBct0XXnZBU8VLWiBdHo+xYYkCAuwcNuhYtYn9oF4OoAOjCwmwGuzvxCVHhnnr1qI60uQhDQDH0xIkH9kTt3nUt8n1NakTUeCpzajH0zHDYuhZ2Tf48ofIcxQhreuQUrJ3dMrc0E8iHB7LgFWXrIzqJTKV1uIVvmiG6epgVPujhHUmqw5vpjig2MkshZfNho0I0FzL6Dt2zJ4pKt23UkF7ZcSoEJxKtyGVL4d2RsQiQ3tpuCkg0LEGt4S7cS4Xw5ok3x7Sc+KLf5SM7x75V+ucIS10iGx7dL6inRq//ketxvX/W8WoylpGsylIn9vWunwQyxDe5dKLRuZ+80u93zuEyhrd5fteIU8ukKrWM54hzaA0lpoUqUnDGzX5mETyjKOPeEQk4PWk5/3pYrjpqZKQLYB0igb5MqQhnsywH/40PRQJX2ie4ei81bvj8lPlQLhSkPE6jq3UvIrZKMkbvKK1HRFZ3ps55xuwADqqyNEYkmMGLFJBdhKHlY/pO1TWLfDjEfe+jVWskCtqxv/YOr3sGZrNLn3Zn7fgebZx8VJTyA02zdxH/ZJbFqkBIO7vWk/2rNHXEhA5PBaww+r+Fdp915geVn6SAq+CK6PfqkSI5+IqI+mUfoAZojf9K/4/5/7vl3A1g1EdfbP6lacQPXu3F/AjL0SCamf3mf8AF30Lt0wwVr/QhUWGQAJUMm2uQKMg9Dw/II2jBIbHAIuqhe+vxiC+S6ZKa25PDBizEGv6eoHMD+wQdyOOMMJlujMBXLmlDYQm0Ef950fB17N7I7+MqWUjvpX52Y0tvrGBpVQJ7TVxSv+l/SSVVWgtxzEHQjY32OZ0pkkvkg7Sg5g9uORREJlo390MVw47MZDGyOkjUoL9XwvAepGCT1P0G4z7UwF0dco4xpo1W2g4G9imiUqejS+jArtQiKbSQZJoruTT2H/+I8s7wHHDhvEs

Hi,

I realize that the documentation does not guarantee any kind of behavior but I would like say that it would be very useful if the result of Construct_hyperbolic_segment_2 *was* guaranteed to be oriented (which actually amounts to a simplification of code, see below). I have code that needs this property and without it I would essentially start reimplementing them just to lift that restriction.

I would also like to point out that, unlike for circular arcs, the property of running clockwise or counterclockwise is not an intrinsic property of a hyperbolic segment. So one could apply a Moebius transformation and the orientation would change.

Generally I agree that the term "segment" doesn't suggest any kind of orientation, so one might want to call it differently. However, I found that throwing away the order of the endpoints (even of circular arcs) is a loss of information that is hard to recover, whereas the property of running clockwise or counterclockwise can be checked in a single line (which might be a method).

I don't mean to question your design decisions just humbly report on my user experience. I'll just work with my patched header for now.

Best,
Stefan

--- a/Hyperbolic_triangulation_2/include/CGAL/internal/Hyperbolic_Delaunay_triangulation_traits_2_functions.h
+++ b/Hyperbolic_triangulation_2/include/CGAL/internal/Hyperbolic_Delaunay_triangulation_traits_2_functions.h
@@ -132,10 +132,7 @@ public:
// uncomment!!!
//assert(circle.has_on_boundary(p) && circle.has_on_boundary(q));

- if(_gt.orientation_2_object()(p, q, center) == LEFT_TURN)
- return Circular_arc_2(circle, p, q);
-
- return Circular_arc_2(circle, q, p);
+ return Circular_arc_2(circle, p, q);
}


On 17.06.19 15:32, Monique Teillaud wrote:
Hi,

I don't remember details but I guess that we have followed the same
conventions as the CGAL circular kernel, see
https://doc.cgal.org/latest/Manual/packages.html#PkgCircularKernel2
The orientation is chosen to be globally consistent.

I have checked the documentation quickly. As far as I can see, neither the
traits concept
(https://doc.cgal.org/latest/Hyperbolic_triangulation_2/classHyperbolicDelaunayTriangulationTraits__2.html)
nor the two models (note that one of them is based on the abovementioned
circular kernel) is explicitly saying anything on the orientation of circular
arcs. There is no guarantee that undocumented properties stay the same
forever, so, it might be risky to rely on them.

Best,
--
Monique Teillaud
https://members.loria.fr/Monique.Teillaud/
INRIA Nancy - Grand Est, LORIA
Institut National de Recherche en Informatique et Automatique

----- Le 14 Juin 19, à 9:10, Stefan Witzel

a écrit :

Hi again,

If I understand correctly in lines 135-136 of

Hyperbolic_triangulation_2/include/CGAL/internal/Hyperbolic_Delaunay_triangulation_traits_2_functions.h

the orientation of hyperbolic segments is chosen so that circular arcs
are always (counter-?)clockwise, discarding potential combinatorial
information. That is, a hyperbolic segment from p to q may end up
going from q to p. Is this correct and is there a good reason for it?

Best,
Stefan



--
Stefan Witzel
Faculty of Mathematics
Bielefeld University
Universitätsstraße 25
33501 Bielefeld
http://www.math.uni-bielefeld.de/~switzel/



Archive powered by MHonArc 2.6.18.

Top of Page