Boost logo

Boost :

Subject: Re: [boost] Proposal/InterestCheck: Boost.Geom
From: Barend Gehrels (barend_at_[hidden])
Date: 2009-01-28 11:02:13

Hi Anis,

> Wrapping is not needed when you want to pass agruments to the library.
> POINT pt1;
> geom::point<POINT> pt2; pt2=pt1; // Assign geom::point = POINT works
> Wrapping is needed when you have a POINT a you need to work with it behind a
> geom::point<>. It is of course possible to copy to a geom::point and then copy
> the results back...
We currently use concepts, and have a set of metafunctions to enable any
geometry object being used or modified by the library.
So we say now, internally:
  geometry::set<0>(p, 3) and its x-value will get an 3
  geometry::set_indexed<min_corner,0>(b, 3) and the x-vale of the
lowerleft corner of the box will get a 3

The point or box involved can have any structure, for example:
struct pnt {double x,y; }
struct box1 {int left,top,right,bottom; }
struct box2 {pnt lowerleft, pnt upperright; }

This is internally. Of course the user can use the point directly, so
can state:
pnt p; p.x = 3;
box1 b; b.left = 3;

But the library uses an indirect way to be independant on the types
choosen by the user.

> PS. I hear lots of people in this thread talking about their own ideas in this
> domain but I find it hard to find each person's proposition/code (latest
> versions, and documentation when available), if everyone could provide links to
> their work it would be great.
Currently our library can be found at:
We will post a new, substantially revised, version in one or two weeks
and use Boost SVN as its new repository then.

Regards, Barend

Boost list run by bdawes at, gregod at, cpdaniel at, john at