I'm writing a tool that is going to be used to process a bunch of 3D data, doing things like rotating objects, translating, scaling and all that good stuff. Does anyone know of a good library that already does some of this common 3D stuff?

I'm not interested in visualizing the data at the moment, and am primarily interested in performing the operations.

Things I know I will need at this point:

  • 2D/3D/4D vectors
    • (adding, subtracting, dot product, cross product, etc...)
  • Rotation/Translation/Scaling using matrices
  • Quaternions

I was able to locate the Sharp3D library, but it seems like it might do what I want but hasn't been updated in a long time. Has anyone used this before? Any other (better) suggestions?

Edit
Report