From 3990358c5276b38ba1cdc69926edef2e2156ed0a Mon Sep 17 00:00:00 2001
From: Tobias Schmidt <tobias.schmidt@unibas.ch>
Date: Wed, 3 Aug 2011 13:21:45 +0200
Subject: [PATCH] fixed bug in OrthogonalVector for colinear vectors

---
 modules/geom/src/vecmat3_op.cc | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/modules/geom/src/vecmat3_op.cc b/modules/geom/src/vecmat3_op.cc
index 7fb8e2fef..0ce26dde3 100644
--- a/modules/geom/src/vecmat3_op.cc
+++ b/modules/geom/src/vecmat3_op.cc
@@ -142,16 +142,16 @@ Mat3 EulerTransformation(Real theta, Real phi, Real xi)
 }
 
 Vec3 OrthogonalVector(const Vec3& vec) {
-  if (vec[0] < vec[1]) {
-    if (vec[0] < vec[2])
+  if (std::abs(vec[0]) < std::abs(vec[1])) {
+    if (std::abs(vec[0]) < std::abs(vec[2]))
       return Normalize(Cross(vec, Vec3(1, 0, 0)+vec));
     else
       return Normalize(Cross(vec, Vec3(0, 0, 1)+vec));
   } else {
-    if (vec[1] < vec[2]) 
+    if (std::abs(vec[1]) < std::abs(vec[2]))
       return Normalize(Cross(vec, Vec3(0, 1, 0)+vec));
     else
-      return Normalize(Cross(vec, Vec3(0, 0, 2)+vec));     
+      return Normalize(Cross(vec, Vec3(0, 0, 1)+vec));
   }
 }
 
-- 
GitLab