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

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