Boost logo

Boost :

Subject: [boost] new library (space partitioning)
From: Adam Wulkiewicz (adam.wulkiewicz_at_[hidden])
Date: 2010-07-26 16:35:48


Hi,

It's my first message so I'd like to introduce myself. My name's Adam
Wulkiewicz, I'm a doctoral student of Technical University of Lodz, Poland.

I'd like to take part in evolution of Boost library. I've implemented
some space partitioning data structures and k-dimensional
generalizations of STL containers and thought that since these kind of
containers are useful to many people it would be nice to have them in Boost.

For people who don't know what are space partitioning data structures:
These data structures divides arbitrary k-dimensional space containing
some k-dimensional 'objects' to accelerate searching for an 'object' or
subset of 'objects' placed in a part of divided space. Just like fe. a
binary tree divides a set of numbers to accelerate searching.

These data structures are used fe. in:
- computer graphics to accelerate rendering (searching of 3D objects,
fe. triangles in raytracing or photons in photon mapping),
- games to accelerate testing for intersection of rays with a scene and
movable objects.

In these examples 'the space' is 'common' 3D euclidean space but you may
divide every space you like to accelerate searching: spherical space,
space containing features of an object used in image recognition process
and so on.

I've implemented:
- k-dimensional generalizations of STL containers (used by some space
partitioning data structures)
- k-dimensional space partitioning data structures
        - regular grid
        - kd-tree
        - something I've called regular tree,
        it's k-dimensional generalization of quadtree/octree,
        so for k=2 it's quadtree, for k=3 it's octree,
        for k=4 it's 16tree and so on.
- k-dimensional euclidean algebra/geometry data structures
        - points, vectors etc.,
- unit tests.

There are boost-like names used in code allready. If you'd like to know
more just ask.

My question is, what do you think about it?
And, If you like my idea, how to start?
I'd like to show my code to you in order to receive your opinions and
suggestions. May I use boost repository or must I place my code elsewere?

Regards,
Adam Wulkiewicz


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