diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2013-03-22 21:48:28 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2013-03-22 21:51:09 +0100 |
commit | 4f05cb2af239ca8471b77c9f1d1c32e8c4cd3abc (patch) | |
tree | 338d3891b0c7710558aea3820d42af6eedfb0af9 /facetracknoir/rotation.h | |
parent | 4f00c4c74d213a37a4b1a3313e50ce2b4dd51271 (diff) |
Remove .bat files, actually finish rename this time
Diffstat (limited to 'facetracknoir/rotation.h')
-rw-r--r-- | facetracknoir/rotation.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/facetracknoir/rotation.h b/facetracknoir/rotation.h new file mode 100644 index 00000000..967d6661 --- /dev/null +++ b/facetracknoir/rotation.h @@ -0,0 +1,31 @@ +/* Copyright (c) 2012 Patrick Ruoff
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ */
+
+#ifndef ROTATION_H
+#define ROTATION_H
+
+// ----------------------------------------------------------------------------
+class Rotation {
+ friend Rotation operator*(const Rotation& A, const Rotation& B);
+public:
+ Rotation() : a(1.0),b(0.0),c(0.0),d(0.0) {}
+ Rotation(double yaw, double pitch, double roll) { fromEuler(yaw, pitch, roll); }
+ Rotation(double a, double b, double c, double d) : a(a),b(b),c(c),d(d) {}
+
+ Rotation inv(); // inverse
+
+ // conversions
+ void fromEuler(double yaw, double pitch, double roll);
+ void toEuler(double& yaw, double& pitch, double& roll);
+
+protected:
+ double a,b,c,d; // quaternion coefficients
+};
+
+Rotation operator*(const Rotation& A, const Rotation& B); // composition of rotations
+
+#endif //ROTATION_H
|