
Hi Fabio, Thanks for your interest and for reviewing our library!
polygon p1 = ...; polygon p2 = ...;
polygon_set ps1 = make_union(p1, p2); polygon_set ps2; intersection(ps1, p2, ps2);
The polygon_set is implemented as a multi-polygon within GGL (and indeed you can call it polygon_set, if it fulfils the concept). We didn't merge the Multi* concepts into the generic algorithms, in other words, we don't require anyone to use a multi* (of course algorithms can be used for multi*). Therefore, union and intersection work with output iterators. So: union_inserter(p1, p2, std::back_inserter(ps1)); It is possible that there will be a "intersection" and "union_" as well, detecting if ps1 is a multi-polygon and automatically inserting. But that is more a sort of synonym, similar way to do things. The make_union would require an r-value and if C++0x is there, it can be implemented without copying the whole resultset. Indeed, it fits into the design and naming conventions.
On the whole I am very pleased with the documentation, its easy to read and reasonably complete. I have a general problem with doxygen generated docu with regard to generic libraries.[...]
I understand. Several people have addressed this so we will certainly improve the documentation. Thanks for your structure proposal. Regards, Barend