Hi all,
The formal review of the Generic Geometry Library (GGL) starts today,
November 5, 2009 and will finish November 15, 2009.
GGL is being developed by Barend Gehrels, Bruno Lalande and Mateusz Loskot,
with substantial input from this Boost mailing list.
------------------------------------------------
About the library:
GGL defines concepts for geometries and implements some algorithms on such
geometries.
GGL is header-only, and can be applied in all software where geometry plays
a small or a larger role. Users of the library can use just only one
function, such as distance:
int a[2] = {1,1};
int b[2] = {2,3};
double d = ggl::distance(a, b);
Library users can also use the library in combination with std::vector,
boost::tuple's and boost::ranges, such as:
std::vector > line;
line.push_back(boost::make_tuple(1, 2, 3));
line.push_back(boost::make_tuple(4, 5, 6));
line.push_back(boost::make_tuple(7, 8, 9));
double length = ggl::length(line);
GGL can also be used in combination with custom or legacy geometries,
adapting them to the library specializing traits classes or using
registration macro's.
Formally, GGL contains a dimension-agnostic, coordinate-system-agnostic and
scalable kernel, based on concepts, meta-functions and
tag-dispatching. On top of that kernel, algorithms are built: area, length,
perimeter, centroid, convex hull, intersection (clipping),
within (point in polygon), distance, envelope (bounding box), simplify,
transform, convert, and more. The library is also designed to support high
precision arithmetic numbers, such as GMP.
The GGL might be used in all domains where geometry plays a role: mapping
and GIS, gaming, computer graphics and widgets, robotics,
astronomy... The core is designed to be as generic as possible and support
those domains. However, for now the development has been mostly
GIS-oriented.
The GGL team proposes an extension model, very similar to what is used by
GIL.
The proposal as it is in the Boost Sandbox included three extensions:
- SVG because it is used in the samples and to generate the documentation
- WKT because it is used in the tests
- The geographic coordinate system because it is used in some of the
examples, also showing how other coordinate systems can be implemented
There are more extensions, not included now, a.o.:
- Spatial index
- Map projections
The proposed GGL has seen four previews, many discussions and many changes
in design and implementation, based on those discussions.
Previews were published on this list January '08, March'08, October'08 and
February'09.
GGL can be found in the sandbox
https://svn.boost.org/svn/boost/sandbox/ggl/formal_review, including source
code, examples, unit tests and documentation. Documentation can also be
found online: http://geometrylibrary.geodan.nl/formal_review
-------------------------------------------------------
Everybody on this list is invited to participate in this formal review. I
hope to see your review of this library, including your vote, and I welcome
your participation in the discussions on the Boost mailing list.
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?
Regards Hartmut
Review Manager
-------------------
Meet me at BoostCon
http://boostcon.com