diff --git a/src/quaternion.hh b/src/quaternion.hh index 00a0f214c9ea310b71fd8460eef5c890ea142b4d..0e97c3abe7ee73fc5914355cf0f295d09cd0e77e 100644 --- a/src/quaternion.hh +++ b/src/quaternion.hh @@ -17,6 +17,10 @@ public: T normV = std::sqrt(v0*v0 + v1*v1 + v2*v2); T sin = std::sin(normV/2)/normV; + // if normV == 0 then q = (0,0,0,1) + if (isnan(sin)) + sin = 0; + q[0] = sin * v0; q[1] = sin * v1; q[2] = sin * v2;