Index: /branches/presentation/src/lib/graphics/importer/md3/md3_model.cc
===================================================================
--- /branches/presentation/src/lib/graphics/importer/md3/md3_model.cc	(revision 9089)
+++ /branches/presentation/src/lib/graphics/importer/md3/md3_model.cc	(revision 9090)
@@ -525,6 +525,7 @@
     float  interpolatedMatrix[4][4];
 
-    Quaternion currQuat(currFrameTag->matrix); currQuat.matrix(currRot);
-    Quaternion nextQuat(nextFrameTag->matrix); nextQuat.matrix(nextRot);
+    /// TODO CHANGED BY BENSCH TO MATCH NEW QUATERNION FUNCTIONALITY
+    Quaternion currQuat; currQuat.from3x3(currFrameTag->matrix); currQuat.matrix(currRot);
+    Quaternion nextQuat; nextQuat.from3x3(nextFrameTag->matrix); nextQuat.matrix(nextRot);
 
     Quaternion interpolatedQuat = Quaternion::quatSlerp(currQuat, nextQuat, frac); interpolatedQuat.matrix(interpolatedMatrix);
Index: /branches/presentation/src/lib/math/quaternion.cc
===================================================================
--- /branches/presentation/src/lib/math/quaternion.cc	(revision 9089)
+++ /branches/presentation/src/lib/math/quaternion.cc	(revision 9090)
@@ -72,5 +72,5 @@
   m[3][3] = 1;
 
-  *this = Quaternion (m);
+  this->from4x4(m);
 }
 
@@ -279,5 +279,5 @@
  * @param m: a 4x4 matrix in glMatrix order
  */
-Quaternion::Quaternion (float m[4][4])
+void Quaternion::from4x4(float m[4][4])
 {
 
@@ -327,9 +327,9 @@
 
 /**
- * Creates a quaternion from a 3x3 rotation matrix.
+ * applies a quaternion from a 3x3 rotation matrix.
  * @param mat The 3x3 source rotation matrix.
  * @return The equivalent 4 float quaternion.
  */
-Quaternion::Quaternion(float mat[3][3])
+void Quaternion::from3x3(float mat[3][3])
 {
   int   NXT[] = {1, 2, 0};
Index: /branches/presentation/src/lib/math/quaternion.h
===================================================================
--- /branches/presentation/src/lib/math/quaternion.h	(revision 9089)
+++ /branches/presentation/src/lib/math/quaternion.h	(revision 9090)
@@ -39,12 +39,16 @@
   /** creates a Default quaternion (multiplicational identity Quaternion)*/
   inline Quaternion () { w = 1; v = Vector(0,0,0); }
+  /** Copy constructor @param q the Quaternion to copy. */
+  inline Quaternion (const Quaternion& q) { w = q.w; v = q.v; };
   /** creates a Quaternion looking into the direction v @param v: the direction @param f: the value */
   inline Quaternion (const Vector& v, float f) { this->w = f; this->v = v; }
-  Quaternion (float m[4][4]);
-  Quaternion (float m[3][3]);
   /** turns a rotation along an axis into a Quaternion @param angle: the amount of radians to rotate @param axis: the axis to rotate around */
   inline Quaternion (float angle, const Vector& axis) { w = cos(angle/2.0); v = axis * sin(angle/2.0); }
   Quaternion (const Vector& dir, const Vector& up);
   Quaternion (float roll, float pitch, float yaw);
+
+  void from3x3(float m[3][3]);
+  void from4x4(float m[4][4]);
+
 
   /** @param q: the Quaternion to compare with this one. @returns true if the Quaternions are the same, false otherwise */
Index: /branches/presentation/src/lib/math/vector.cc
===================================================================
--- /branches/presentation/src/lib/math/vector.cc	(revision 9089)
+++ /branches/presentation/src/lib/math/vector.cc	(revision 9090)
@@ -40,9 +40,9 @@
 Vector Vector::getNormalized() const
 {
-  float l = this->len();
-  if(unlikely(l == 1.0 || l == 0.0))
+  float length = this->len();
+  if (unlikely(length == 0.0))
     return *this;
   else
-    return (*this / l);
+    return (*this / length);
 }
 
Index: /branches/presentation/src/lib/math/vector.h
===================================================================
--- /branches/presentation/src/lib/math/vector.h	(revision 9089)
+++ /branches/presentation/src/lib/math/vector.h	(revision 9090)
@@ -42,5 +42,4 @@
   Vector (float x, float y, float z) : x(x), y(y), z(z) {}  //!< assignment constructor
   Vector () : x(0), y(0), z(0) {}
-  ~Vector () {}
 
   /** @param v: the Vecor to compare with this one @returns true, if the Vecors are the same, false otherwise */
