Boost logo

Boost :

Subject: Re: [boost] [gsoc] Interest check for 3d geometry proposal
From: Simonson, Lucanus J (lucanus.j.simonson_at_[hidden])
Date: 2009-03-27 10:36:03


>> Which computational geometry *data structures* can be built on top
>> of a vector/matrix library? I mean, you will need to represent
>> points and vectors, sure, but these are too primitives to say "on
>> top of vectors and matrices".
>
Kornel Kisielewicz wrote:
> Structures for commonly used primitives ( spheres, lines, aaboxes,
> boxes, planes, rays ), following them are intersection and containment
> tests using those structures, bounding calculations, following them we
> containment structures ( octrees, kd-trees, BSP, loose octrees, BVH,
> spatial indexing in general using one of the algoithms, etc ). There's
> also the topic of tesselation, triangulation, culling, visibility
> determination etc.
>
> I doubt that all could be done in 3 months, but I'm pretty damn sure
> it would be faster to build them from basic vector blocks then from
> uBLAS.

In a previous summer of code the focus on 2D spatial query data structures failed to yield correct or fast implementations, and the API was not suitably generic for boost. Is it realistic to expect better for 3D spatial query data structures this time around?

Internally we have at least a dozen implementations of 2D spatial query data structures for rectangles and probably some more for points. I have one for rectangles in the previous version of my library which I will port to the new API soon. It turns out writing a 2D spatial query data structure is easy, however, writing a good one is a little harder. If I gave the project to a new hired developer straight out of school to write such a data structure I would have to expect that it would not produce anything of lasting value other than a learning experience. While I see us focusing on the value of what might be produced in a GSOC project, I think this is the wrong perspective to take. There is a high probability that the only value produced is the student learns some things. Instead of asking what helps us we should ask what makes a good learning experience for the student. If you want the project to turn into something real then you need to take responsibility for doing the work yourself after the students run out of time. That probably ammounts to more work than just doing it yourself from the start. Mentoring should be viewed as akin to charitable giving. Instead of asking what valuable code they can produce, lets ask what valuable experience we can give.

Regards,
Luke


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