summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/quaternion.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/asymptote/quaternion.h')
-rw-r--r--Build/source/utils/asymptote/quaternion.h114
1 files changed, 0 insertions, 114 deletions
diff --git a/Build/source/utils/asymptote/quaternion.h b/Build/source/utils/asymptote/quaternion.h
deleted file mode 100644
index f58a7445e52..00000000000
--- a/Build/source/utils/asymptote/quaternion.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/****************************************************************************
-
- quaternion.h - A quaternion class
-
- GLUI User Interface Toolkit (LGPL)
- Copyright (c) 1998 Paul Rademacher
-
- ---------------------------------------------------------------------
-
- WWW: http://sourceforge.net/projects/glui/
- Forums: http://sourceforge.net/forum/?group_id=92496
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-*****************************************************************************/
-
-#ifndef GLUI_QUATERNION_H
-#define GLUI_QUATERNION_H
-
-#include "algebra3.h"
-#include <cstdio>
-
-/* this line defines a new type: pointer to a function which returns a */
-/* float and takes as argument a float */
-typedef float (*V_FCT_PTR)(float);
-
-/****************************************************************
- * Quaternion *
- ****************************************************************/
-
-class quat
-{
- /*protected: */
-public:
-
- vec3 v; /* vector component */
- float s; /* scalar component */
-
- /*public: */
-
- /* Constructors */
-
- quat();
- quat(float x, float y, float z, float w);
- quat(const vec3 &v, float s);
- quat(float s, const vec3 &v);
- quat(const float *d); /* copy from four-element float array */
- quat(const double *f); /* copy from four-element double array */
- quat(const quat &q); /* copy from other quat */
-
- /* Assignment operators */
-
- quat &operator = (const quat &v); /* assignment of a quat */
- quat &operator += (const quat &v); /* incrementation by a quat */
- quat &operator -= (const quat &v); /* decrementation by a quat */
- quat &operator *= (float d); /* multiplication by a constant */
- quat &operator /= (float d); /* division by a constant */
-
- /* special functions */
-
- float length() const; /* length of a quat */
- float length2() const; /* squared length of a quat */
- quat &normalize(); /* normalize a quat */
- quat &apply(V_FCT_PTR fct); /* apply a func. to each component */
- vec3 xform(const vec3 &v ); /* q*v*q-1 */
- mat4 to_mat4() const;
- void set_angle(float f); /* set rot angle (degrees) */
- void scale_angle(float f); /* scale rot angle (degrees) */
- float get_angle() const; /* set rot angle (degrees) */
- vec3 get_axis() const; /* get axis */
-
- void print( FILE *file, const char *name ) const; /* print to a file */
-
- float &operator [] (int i); /* indexing */
- const float &operator [] (int i) const; /* indexing */
-
- void set(float x, float y, float z); /* set quat */
- void set(const vec3 &v, float s); /* set quat */
-
- /* friends */
-
- friend quat operator - (const quat &v); /* -q1 */
- friend quat operator + (const quat &a, const quat &b); /* q1 + q2 */
- friend quat operator - (const quat &a, const quat &b); /* q1 - q2 */
- friend quat operator * (const quat &a, float d); /* q1 * 3.0 */
- friend quat operator * (float d, const quat &a); /* 3.0 * q1 */
- friend quat operator * (const quat &a, const quat &b); /* q1 * q2 */
- friend quat operator / (const quat &a, float d); /* q1 / 3.0 */
- friend int operator == (const quat &a, const quat &b); /* q1 == q2 ? */
- friend int operator != (const quat &a, const quat &b); /* q1 != q2 ? */
- friend void swap(quat &a, quat &b); /* swap q1 &q2 */
- /*friend quat min(const quat &a, const quat &b); -- min(q1, q2) */
- /*friend quat max(const quat &a, const quat &b); -- max(q1, q2) */
- friend quat prod(const quat &a, const quat &b); /* term by term mult*/
-};
-
-/* Utility functions */
-
-quat quat_identity(); /* Returns quaternion identity element */
-quat quat_slerp(const quat &from, const quat &to, float t);
-
-#endif