Subject: Re: [boost] Formal Review: Boost.Polygon starts today August 24, 2009
From: Thomas Klimpel (Thomas.Klimpel_at_[hidden])
Date: 2009-08-29 18:37:55
> - What is your evaluation of the documentation?
I actually like it, especially now where I read through it once (At least now I have the impression that I understood everything. However, I know from experience that such an impression is deceptive). I noticed that "gtl_point_3d_concept.htm" is not linked to the rest of the documentation, could this be intentional? (It seems like a point_3d concept is not required for a polygon library.)
I gave up writing down all typos explicitly. Instead, I fixed my local version and created a patch (-> see attachment).
The Polygon Set Concept documentation (and others) says "Will scan and eliminate overlaps" from time to time, but doesn't describe how overlaps are resolved. Common options are the even-odd rule and the non-zero winding number rule, but I guess there exist even more sensible options than that. Is there a way to control how overlaps are resolved and which resolution strategy is used by default?
The "Property Merge" seems to describe a substitute for a "reduce" operation (in the sense of the "map-reduce paradigm"). The result type "std::map<std::set<property_type>, polygon_set_data<coordinate_type> >" is probably the substitute for commutative "reduce" operations and "std::map<std::vector<property_type>, polygon_set_data<coordinate_type> >" the substitute for non-commutative "reduce" operations. I see that I can implement any desired "reduce" operation, by first running the "Property Merge" algorithm, and then applying the reduce operations to the resulting sets, and then just putting all result polygons from sets with identical "reduce" result in the same set (which give the correct result since the polygons sets don't overlap each other). But I wonder whether it would be possible to directly offer "reduce" operations, and whether this could potentially have performance benefits.
(I will submit a complete review once I'm finished with reviewing the library.)
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk