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