
Please always state in your review, whether you think the library should be accepted as a Boost library! Yes, I believe the library should be accepted.
Additionally please consider giving feedback on the following general topics:
- What is your evaluation of the design? The design looks extremely solid. The concepts are clear and useful. - What is your evaluation of the implementation? I've taken only a short look, but it looks quite readable, which is an achievement in template code. It does not conform to some Boost coding conventions (line length and indentation level), but those are minor points. - What is your evaluation of the documentation? The documentation is well-written. There are some typos (e.g. check the documentation of abuts(interval)), but these are minor points and do not detract from the clarity. I think something that would be useful would be a list of functions that work on all the geometry primitives. - What is your evaluation of the potential usefulness of the library? The limitation that polygon operations must basically be integral (I'm not sure what effect the snap-rounding distance of one integer unit has in concrete cases, but when that integer unit is a kilometer, it sounds
- Did you try to use the library? With what compiler? Did you have any problems? I compiled a few of the examples with GCC 4.3 and had no problems. I have not tried to combine the library with my own code. - How much effort did you put into your evaluation? A glance? A quick reading? In-depth study? I spent about two hours reading the documentation and samples and
Fernando Cacciola wrote: like it would introduce significant inaccuracies) means that my particular use case is somewhat limited - I have to work with 3rd party geometry that uses floating point values. If this is a misunderstanding on my part, the library would be extremely useful to me. Even as it is, I can use the point and rectangle functions to replace quite a bit of my own code. peeking at the implementation.
- Are you knowledgeable about the problem domain? Not particularly. I have typical programmer's knowledge of basic geometry operations, but I have, for example, no idea what connectivity extraction is. My use of this library would be limited to polygon combinations and the fundamental coordinate manipulation functionality.
Sebastian