Boost logo

Boost :

Subject: [boost] Formal Review: Boost.Polygon starts today August 24, 2009
From: Fernando Cacciola (fernando.cacciola_at_[hidden])
Date: 2009-08-24 16:36:56


Dear Developers,

The formal review of the Boost.Polygon library by Lucanus Simonson starts today,
August 24, 2009 and will finish September 2, 2009.

I really hope to see your vote and your participation in the discussions on
the Boost mailing lists!

---------------------------------------------------

About the library:

The boost polygon library provides algorithms focused on manipulating planar
polygon geometry data. Specific algorithms provided are the polygon set
operations (intersection, union, difference, disjoint-union) and related
algorithms such as polygon connectivity graph extraction, offsetting and
map-overlay. These so-called Boolean algorithms are of significant interest in
GIS (Geospatial Information Systems), VLSI CAD as well al other fields of CAD,
and many more application areas, and providing them is the primary focus of this
library. The polygon library is not intended to cover all of computational
geometry in its scope, and provides a set of capabilities for working with
coordinates, points, intervals and rectangles that are needed to support
implementing and interacting with polygon data structures and algorithms.
Specifically, 3d and non-Cartesian/non-planar geometry is outside of the scope
of the polygon library

The design philosophy behind the polygon library was to create an API for
invoking the library algorithms it provides on user geometry data types that is
maximally intuitive, minimally error-prone and easy to integrate into
pre-existing applications. C++-concepts based template meta-programming
combined with generic operator overloading meets these design goals without
sacrificing the runtime or memory efficiency of the underlying algorithms. This
API makes the following code snippet that operates on non-library geometry types
possible:

void foo(list<CPolygon>& result, const list<CPolygon>& a,
          const list<CPolygon>& b, int deflateValue) {
      CBoundingBox domainExtent;
      using namespace boost::polygon::operators;
      boost::polygon::extents(domainExtent, a);
      result += (b & domainExtent) ^ (a - deflateValue);
}

The source is available at

http://svn.boost.org/svn/boost/sandbox/gtl/boost/polygon/

And the documentation is at

http://svn.boost.org/svn/boost/sandbox/gtl/doc/index.htm

---------------------------------------------------

Please always state in your review, whether you think the library should be
accepted as a Boost library!

Additionally please consider giving feedback on the following general
topics:

- What is your evaluation of the design?
- What is your evaluation of the implementation?
- What is your evaluation of the documentation?
- What is your evaluation of the potential usefulness of the library?
- Did you try to use the library? With what compiler? Did you have any
problems?
- How much effort did you put into your evaluation? A glance? A quick
reading? In-depth study?
- Are you knowledgeable about the problem domain?

Best Regards

Fernando Cacciola
Review Manager


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk