Any good libraries for quaternion calculations in C/C++ ?
Side note: any good tutorials/examples? I've google it and been to the first few pages but maybe you have have some demos/labs from compsci or math courses you could/would share?
Thanks
Any good libraries for quaternion calculations in C/C++ ?
Side note: any good tutorials/examples? I've google it and been to the first few pages but maybe you have have some demos/labs from compsci or math courses you could/would share?
Thanks
You could try with Boost - usually good place to start with. They have a dedicated sublibrary for that.
As for the examples look at the documentation and the unit tests that come along with Boost.
DirectX has its own quaternion functions, as do several other 3D libraries.
In my opinion, the best way to learn how quaternions work is to plow through the math yourself. The Wikipedia page on quaternions and conversion contain all the formulas you need. I wrote my own quaternion library from that :) (It's in Haskell, so I won't bother to post it.)
For documentation on quaternions, check out 3D graphics text books. They are simply matrices that produce the effect of 3D rotation using multiplication instead of computationally expensive trigonometry.
I'm a fan of the Irrlicht quaternion class. It is zlib licensed and is fairly easy to extract from Irrlicht:
There's Eigen, a templated library of math and geometry stuff used in Blender and by KDE programs, which has a slick Quaternion class defined in a single .h file.
Info at http://eigen.tuxfamily.org/index.php?title=Main%5FPage and http://www.ohloh.net/p/5393
If you decide to roll your own, or actually want to understand the math behind the code (useful for debugging), I highly recommend Martin Baker's website. It looks primitive, but the explanations are thorough and easy to follow, and he also provides code in places.