diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2013-03-22 21:48:15 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2013-03-22 21:48:15 +0100 |
commit | 4f00c4c74d213a37a4b1a3313e50ce2b4dd51271 (patch) | |
tree | f692743cb752c994c05fe2761f83af08aa28d239 /facetracknoir/xxx_rotation.h | |
parent | 5c5ec4b4238996770bfd74ddfc87934ace40bf0f (diff) |
finish rename
Diffstat (limited to 'facetracknoir/xxx_rotation.h')
-rw-r--r-- | facetracknoir/xxx_rotation.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/facetracknoir/xxx_rotation.h b/facetracknoir/xxx_rotation.h new file mode 100644 index 00000000..967d6661 --- /dev/null +++ b/facetracknoir/xxx_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
|