Mike Panetta
/
FirstTest
Second revision of test code for Polyathalon sensor board.
Quaternion/Quaternion.h@1:1e37eee8e1cf, 2011-11-05 (annotated)
- Committer:
- mpanetta
- Date:
- Sat Nov 05 21:10:10 2011 +0000
- Revision:
- 1:1e37eee8e1cf
- Parent:
- 0:13a7de7ce046
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mpanetta | 0:13a7de7ce046 | 1 | /** |
mpanetta | 0:13a7de7ce046 | 2 | * @file Quaternion.h |
mpanetta | 0:13a7de7ce046 | 3 | * @author Mike Panetta |
mpanetta | 0:13a7de7ce046 | 4 | * |
mpanetta | 0:13a7de7ce046 | 5 | * Created Oct 29th 2011 |
mpanetta | 0:13a7de7ce046 | 6 | * |
mpanetta | 0:13a7de7ce046 | 7 | * Based on tutorial here: http://www.cprogramming.com/tutorial/3d/quaternions.html |
mpanetta | 0:13a7de7ce046 | 8 | * |
mpanetta | 0:13a7de7ce046 | 9 | */ |
mpanetta | 0:13a7de7ce046 | 10 | |
mpanetta | 0:13a7de7ce046 | 11 | #ifndef _QUATERNION_H_ |
mpanetta | 0:13a7de7ce046 | 12 | #define _QUATERNION_H_ |
mpanetta | 0:13a7de7ce046 | 13 | |
mpanetta | 0:13a7de7ce046 | 14 | #include <math.h> |
mpanetta | 0:13a7de7ce046 | 15 | |
mpanetta | 0:13a7de7ce046 | 16 | class Quaternion |
mpanetta | 0:13a7de7ce046 | 17 | { |
mpanetta | 0:13a7de7ce046 | 18 | public: |
mpanetta | 0:13a7de7ce046 | 19 | Quaternion(float const & a, |
mpanetta | 0:13a7de7ce046 | 20 | float const & b, |
mpanetta | 0:13a7de7ce046 | 21 | float const & c, |
mpanetta | 0:13a7de7ce046 | 22 | float const & d) : w(a), x(b), y(c), z(d) {} |
mpanetta | 0:13a7de7ce046 | 23 | |
mpanetta | 0:13a7de7ce046 | 24 | float norm(void) |
mpanetta | 0:13a7de7ce046 | 25 | { |
mpanetta | 0:13a7de7ce046 | 26 | return sqrtf(w*w+x*x+y*y+z*z); |
mpanetta | 0:13a7de7ce046 | 27 | } |
mpanetta | 0:13a7de7ce046 | 28 | |
mpanetta | 0:13a7de7ce046 | 29 | float real(void) |
mpanetta | 0:13a7de7ce046 | 30 | { |
mpanetta | 0:13a7de7ce046 | 31 | return w; |
mpanetta | 0:13a7de7ce046 | 32 | } |
mpanetta | 0:13a7de7ce046 | 33 | |
mpanetta | 0:13a7de7ce046 | 34 | Quaternion unreal(void) |
mpanetta | 0:13a7de7ce046 | 35 | { |
mpanetta | 0:13a7de7ce046 | 36 | return Quaternion(0, x, y, z); |
mpanetta | 0:13a7de7ce046 | 37 | } |
mpanetta | 0:13a7de7ce046 | 38 | |
mpanetta | 0:13a7de7ce046 | 39 | private: |
mpanetta | 0:13a7de7ce046 | 40 | |
mpanetta | 0:13a7de7ce046 | 41 | float w, x, y, z; |
mpanetta | 0:13a7de7ce046 | 42 | }; |
mpanetta | 0:13a7de7ce046 | 43 | |
mpanetta | 0:13a7de7ce046 | 44 | |
mpanetta | 0:13a7de7ce046 | 45 | #endif //_QUATERNION_H)_ |