
Hi, I have written a bit of code to handle geometric vectors in a generic way, abstracting their dimension. The idea behind this code is to be able to apply one operation between two vectors, or a vector and a scalar, whatever their dimension, and writing it in an expandable way without having to modify any manipulation functions if a new geometric vector class is created. The other advantage is that the resulting assembly code is just as fast as if the functions had all been explicitly written. Right now I have three simple vector classes - ranging from vector2d to vector4d - that are not templetized since I like the idea of being able to access coordinates directly by their name vector3d vec; vec.x += 10.0f; to give you an example of the syntax, here is how you would add two vectors of different dimensions : vector2d v1(1.0f, 2.0f); vector3d v2(-1.0f, 3.0f, 2.0f); vector4d res; vector_add(v1, v2, res); /* res now contains (0.0f, 5.0f, 2.0f, 1.0f) */ the result is determined by the dimension of the third vector passed to vector_add. v1 is auto-promoted to act like a vector3d. v2 does not change. res gets (v1.x + v2.x, v1.y + v2.y, v1.z + v2.z, default_w_value). I didn't seem to find any information on a lib currently under development that provides geometric vector manipulation in that way - maybe apart from uBLAS - so I thought I would share this if anyone seems to be interested. BR, Olivier.