From 4f05cb2af239ca8471b77c9f1d1c32e8c4cd3abc Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Fri, 22 Mar 2013 21:48:28 +0100 Subject: Remove .bat files, actually finish rename this time --- facetracknoir/rotation.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 facetracknoir/rotation.h (limited to 'facetracknoir/rotation.h') 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 -- cgit v1.2.3