Index: /trunk/packages/vizservers/nanovis/vrmath/include/vrmath/Vector2f.h
===================================================================
--- /trunk/packages/vizservers/nanovis/vrmath/include/vrmath/Vector2f.h	(revision 3871)
+++ /trunk/packages/vizservers/nanovis/vrmath/include/vrmath/Vector2f.h	(revision 3872)
@@ -40,5 +40,5 @@
     void set(const Vector2f& v);
 
-    float dot() const;
+    double dot() const;
 
     double length() const;
@@ -67,5 +67,5 @@
 }
 
-inline float Vector2f::dot() const
+inline double Vector2f::dot() const
 {
     return (x * x + y * y);
Index: /trunk/packages/vizservers/nanovis/vrmath/include/vrmath/Vector3f.h
===================================================================
--- /trunk/packages/vizservers/nanovis/vrmath/include/vrmath/Vector3f.h	(revision 3871)
+++ /trunk/packages/vizservers/nanovis/vrmath/include/vrmath/Vector3f.h	(revision 3872)
@@ -58,5 +58,5 @@
     Vector3f scale(const Vector3f& scale) const;
 
-    Vector3f scale(float scale) const;
+    Vector3f scale(double scale) const;
 
     bool operator==(const Vector3f& v) const;
@@ -67,9 +67,9 @@
 
     // scalar ops
-    Vector3f operator+(float scalar) const;
-    Vector3f operator-(float scalar) const;
-    Vector3f operator*(float scalar) const;
-    Vector3f operator/(float scalar) const;
-    Vector3f& operator*=(float scalar);
+    Vector3f operator+(double scalar) const;
+    Vector3f operator-(double scalar) const;
+    Vector3f operator*(double scalar) const;
+    Vector3f operator/(double scalar) const;
+    Vector3f& operator*=(double scalar);
 
     // vector ops
@@ -113,25 +113,25 @@
 }
 
-inline Vector3f Vector3f::operator+(float scalar) const
+inline Vector3f Vector3f::operator+(double scalar) const
 {
     return Vector3f(x + scalar, y + scalar, z + scalar);
 }
 
-inline Vector3f Vector3f::operator-(float scalar) const
+inline Vector3f Vector3f::operator-(double scalar) const
 {
     return Vector3f(x - scalar, y - scalar, z - scalar);
 }
 
-inline Vector3f Vector3f::operator*(float scalar) const
+inline Vector3f Vector3f::operator*(double scalar) const
 {
     return Vector3f(x * scalar, y * scalar, z * scalar);
 }
 
-inline Vector3f Vector3f::operator/(float scalar) const
+inline Vector3f Vector3f::operator/(double scalar) const
 {
     return Vector3f(x / scalar, y / scalar, z / scalar);
 }
 
-inline Vector3f& Vector3f::operator*=(float scalar)
+inline Vector3f& Vector3f::operator*=(double scalar)
 {
     x *= scalar;
@@ -168,5 +168,5 @@
 
 #if 0
-inline Vector3f operator*(float scale, const Vector3f& value)
+inline Vector3f operator*(double scale, const Vector3f& value)
 {
     return Vector3f(value.x * scale, value.y * scale, value.z * scale);
@@ -231,6 +231,6 @@
 inline Vector3f Vector3f::normalize() const
 {
-    float len = length();
-    if (len > 1.0e-6) {
+    double len = length();
+    if (len > 0.0) {
         return Vector3f(x / len, y / len, z / len);
     } else {
@@ -239,5 +239,5 @@
 }
 
-inline Vector3f Vector3f::scale(float scale) const
+inline Vector3f Vector3f::scale(double scale) const
 {
     return Vector3f(x * scale, y * scale, z * scale);
Index: /trunk/packages/vizservers/nanovis/vrmath/include/vrmath/Vector4f.h
===================================================================
--- /trunk/packages/vizservers/nanovis/vrmath/include/vrmath/Vector4f.h	(revision 3871)
+++ /trunk/packages/vizservers/nanovis/vrmath/include/vrmath/Vector4f.h	(revision 3872)
@@ -66,10 +66,10 @@
     }
 
-    Vector4f operator*(float op2) const
+    Vector4f operator*(double op2) const
     {
         return Vector4f(x * op2, y * op2, z * op2, w * op2);
     }
 
-    Vector4f operator/(float op2) const
+    Vector4f operator/(double op2) const
     {
         return Vector4f(x / op2, y / op2, z / op2, w / op2);
@@ -78,5 +78,5 @@
     void divideByW();
 
-    float dot(const Vector4f& vec) const;
+    double dot(const Vector4f& vec) const;
 
     union {
@@ -122,7 +122,7 @@
 }
 
-inline float Vector4f::dot(const Vector4f& v) const
+inline double Vector4f::dot(const Vector4f& v) const
 {
-    return (x * v.x + y * v.y + z * v.z + w * v.w);
+    return ((double)x * v.x + (double)y * v.y + (double)z * v.z + (double)w * v.w);
 }
 
