Boost logo

Boost :

From: Arash Partow (arash_at_[hidden])
Date: 2006-07-23 23:31:49


Hi all,

I was wondering if there was anyone working on / managing
the BOOST geometry libraries? I can't seem to see if anyone
has already put their hand up or not. I've noticed that it
was a contender for the 2006 SoC, and that there are a couple
of code samples in the BOOST vault.

In any case I'm planning on making a preliminary library
submission sometime soon, I've been contact with one of
the other code submitters, I just want to make sure there
isn't an effort already underway, I've searched the mailing
list, and have found anything of interest.

If anyone has any information about this topic, please
feel free to comment as it would help a great deal.

As for a preliminary library design I propose the following:

 * primitive geometric structures 2D/3D only
(point,line,segment,triangle...)
 * operations between primitives (intersection, distance, inclusion...)
 * higher level algorithms in a structured fashion similar to BGL:
   * hulls, rotating caliper
   * triangulation (point sets, polygons)
   * boolean operations over polygons

   Note: algorithms will be named based on method then algorithm type
   for example convex hull variations would be:
      1. graham_scan_convex_hull(it_begin,it_end,out_it)
      2. jarvis_march_convex_hull(it_begin,it_end,out_it)
      3. gift_wrapping_convex_hull(it_begin,it_end,out_it)
      4. quick_convex_hull(it_begin,it_end,out_it)

 * precision related issues to be dealt with mainly by user
   specified floating point type, and partially at the algorithm level

 * keep code bloat and over-engineering to a minimum. ie: in cgal to
   determine whether or not 2 segments intersect you need roughly 35
   lines of source code.

   Should be something like the following:

   boost::geometry
   {
      segment<T,D> seg1 = make_segment(....);
      segment<T,D> seg2 = make_segment(....);
      .
      .
      if (intersect(seg1,seg2))
       ...;
      else
       ...;
   }

Arash Partow
________________________________________________________
Be one who knows what they don't know,
Instead of being one who knows not what they don't know,
Thinking they know everything about all things.
http://www.partow.net


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