[geos-devel] [Fwd: [Boost-users] [boost] Formal Review: Boost.Polygon starts today August 24, 2009]

Stephen Woodbridge woodbri at swoodbridge.com
Tue Aug 25 09:14:02 EDT 2009

Hi Devs,

I saw this this morning and thought it might be of interest to the 
postGIS and GEOS teams. What caught my eye was the connection to Graphs 
which implies to me topology in this case. This might give us the tools 
needed to handle polygon coverages and do things like simplify a 
coverage while maintaining topology of the edges and and common edges 
between topologically connected polygons. I'm only guessing al this from 
the write up below but it sounds promising.

Maybe someone with more technical guts knowledge can review this for its 
potential value to GEOS and/or PostGIS.


-------- Original Message --------
Subject: [Boost-users] [boost] Formal Review: Boost.Polygon starts 
today	August 24, 2009
Resent-Date: Tue, 25 Aug 2009 07:43:06 -0400
Resent-From: Ronald Garcia <garcia at osl.iu.edu>
Resent-To: boost-users at lists.boost.org, boost-announce at lists.boost.org
Date: Mon, 24 Aug 2009 17:36:56 -0300
From: Fernando Cacciola <fernando.cacciola at gmail.com>
Reply-To: boost-users at lists.boost.org
To: boost at lists.boost.org

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
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
geometry in its scope, and provides a set of capabilities for working
coordinates, points, intervals and rectangles that are needed to support
implementing and interacting with polygon data structures and
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
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
sacrificing the runtime or memory efficiency of the underlying
algorithms.  This
API makes the following code snippet that operates on non-library
geometry types

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


And the documentation is at



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

- 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
- 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

Unsubscribe & other changes: 
Boost-users mailing list
Boost-users at lists.boost.org

More information about the geos-devel mailing list