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