
Hi Mathias, Thanks for your interest in the geometry / spatial index library. There were also some other postings about this library last week, but to be clear. The preview (on which the spatial index was built) was posted in March this year. There were many discussions about this preview, among others about dimension agnosticity and concepts. Bruno Lalande joined me. We agree with those critics and have reworked the library, which indeed took a while, but which will now appear very soon on this list. It is dimension agnostic and uses concepts.
For starters, I think those libraries should be dimension agnostic and generic. Geometry not only has a strong 2D bias, but the documentation also says geometry::box only works with point_xy (and point_ll). Since it is used everywhere in spatial index, that means it's unusable on 3D.
The box in the library was just a small helper class. It is indeed more important in the spatial index library and should be generic, indeed. However, the restriction for just xy / ll points is gone, it can take 3d points now, for example. Points (point concepts) are now dimension agnostic and generic in our library. I will not go into the details of your comments on the spatial index library, but keep in mind that it was a GSoC exercise and that the author, who did a great job, noted with his final report: (paste of his email):
The code is still beta (or maybe alpha) and not recommended for production use because it is still not tested enough, but if you want to check the actual status you can find it in the following location...
About geometry, I think there should be more basic objects. While it is true polygons and multipolygons (polyhedrons) are enough to represent everything in 3D space, having rays, segments, triangles, quads, circles, spheres, squares, rectangles, cubes, cuboids (boxes), planes, half-planes and more, with ability to compute all intersections and distances, would be the most practical thing for 3D development. I do not know how to organize this in a really dimension-agnostic manner, however. In a nutshell, I think the spatial indexes design and how geometry can help it ought to be discussed.
You're probably right that there should be more objects. Especially 3D/gaming geometry is quite demanding. We still concentrate on the basics, "point", the concepts, most discussions on the list are about those basics. Besides objects there should also be more algorithms. A "complete" geometry library, designed for all purposes, will be huge. To build it in a generic way, where every boost user believes in and agrees with, is challenging and will need much discussion. So agree, it ought to be discussed. Within a week or so a new preview (Preview 3) from our side should be there. Best regards, Barend, Geodan, Amsterdam, the Netherlands