--- trunk/OOPSE/libmdtools/DumpReader.cpp 2004/06/07 14:26:33 1252 +++ trunk/OOPSE/libmdtools/DumpReader.cpp 2004/06/11 17:16:21 1268 @@ -611,6 +611,12 @@ char* DumpReader::parseDumpLine(char* readLine, StuntD // check that the quaternion vector is normalized qSqr = (q[0] * q[0]) + (q[1] * q[1]) + (q[2] * q[2]) + (q[3] * q[3]); + + if (fabs(qSqr) < 1e-6) { + sprintf(painCave.errMsg, + "initial quaternion error (q0^2 + q1^2 + q2^2 + q3^2 ~ 0).\n"); + return strdup(painCave.errMsg); + } qLength = sqrt( qSqr ); q[0] = q[0] / qLength;