Re: [boost] [geometry] robustness approaches

Barend Gehrels wrote:
You'll probably found this on the mails and not on the library itself. It has no circles so it is a bit unfair to compare the approaches like this. It focusses on integer arithmetic and 45/90 angled polygons so it is different, more or less complimentary.
I'm a little hurt to hear you say this. I keep repeating that I currently handle arbitrary angle polgon set boolean operations and that the implementation is 100% robust for integer coordinates but not so for floating point. There are practically no robustness issues with 90 polygons and only very little with 45 polygons, so why would I discuss it if I didn't need to concern myself with it? When I talk about robustness I'm talking about my arbitrary angle polygon clipping implementation. Allow me to demonstrate this capability more clearly. I have just exercised my arbitrary angle polygons booleans with floating point coordinates. It worked and successfully XOR-ed a hand with a spiral which is a visually appealing but trivially small test case of mine. I can't claim that it is 100% robust for floating point coordinates (yet) but I do have working code. I have attached both sets of outputs the image of the result as well. It is clearly correct. Just because I don't claim floating point robustness doesn't mean the algorithm doesn't work or can't produce correct results. I just haven't designed in and verified 100% robustness for floating point. Regards, Luke

Hi Luke, I really appreciate the effort you're putting into this library, just skimming over the code and I can see it will be something I'd definitely be using. But in regards to some of the comments you've made about robustness and such, I would like to suggest you have a read of the paper: "Robustness In Geometric Computations" Christoph M. Hoffmann 2001 There are some geometric software design concepts such as "folding" (not protein folding" etc) that really need to be taken into account, as most geometric computations are layerings or repetitions of each other, understanding these concepts makes suggestions like epsilon tolerance based robustness approaches inadequate, but further more reliance upon type precision essentially becomes a bottomless pit of problems. I have some other comments regarding interfaces for the library that are concerned with online algorithms, but I'll leave that for later as I'm still trying to determine some working examples. But again as before, thank-you for the effort! Arash Partow ________________________________________________________ Be one who knows what they don't know, Instead of being one who knows not what they don't know, Thinking they know everything about all things. http://www.partow.net

Arash Partow wrote:
But in regards to some of the comments you've made about robustness and such, I would like to suggest you have a read of the paper:
"Robustness In Geometric Computations" Christoph M. Hoffmann 2001
Thank you for the reference. ...
reliance upon type precision essentially becomes a bottomless pit of problems.
That's the pit that I want to stay out of at all cost. Effort expended "maintaining" code subtracts from effort that could be expended writing new code. If I make a maintenance problem for myself by implementing something that will cause problems for uses then I become a slave to my own code. Hopefully the reference you gave me and those from Fernando can help me steer clear of the pitfalls. Luke

Arash Partow wrote:
I really appreciate the effort you're putting into this library, just skimming over the code and I can see it will be something I'd definitely be using.
Thank you for saying so; I'm glad to hear it. While the documentation is still under construction you can use the file gtl_test.cpp in the sandbox as a collection of example codes that demonstrates how to use most every feature of the library. This should make it easier for you to connect the highly templated implementation of the API to the much more simple and easy to understand usage of that API. Regards, Luke
participants (2)
-
Arash Partow
-
Simonson, Lucanus J