don't be so fussy about nearly-singular matrices

This commit is contained in:
David Rose 2001-09-17 23:30:21 +00:00
parent a31c8dd8ee
commit a03cf3ff2c
2 changed files with 10 additions and 2 deletions

View File

@ -818,7 +818,11 @@ invert_from(const FLOATNAME(LMatrix3) &other) {
FLOATTYPE other_det = MATRIX3_DETERMINANT(other._m.m);
if (IS_NEARLY_ZERO(other_det)) {
// We throw the value out only if it's smaller than our "small"
// threshold squared. This helps reduce overly-sensitive
// rejections.
if (IS_THRESHOLD_ZERO(other_det, (NEARLY_ZERO(FLOATTYPE) * NEARLY_ZERO(FLOATTYPE)))) {
// if (IS_NEARLY_ZERO(other_det)) {
#ifdef NOTIFY_DEBUG
linmath_cat.warning() << "Tried to invert singular LMatrix3.\n";
#endif

View File

@ -242,7 +242,11 @@ decompose_mat(int index[4]) {
}
}
if (IS_NEARLY_ZERO(big)) {
// We throw the value out only if it's smaller than our "small"
// threshold squared. This helps reduce overly-sensitive
// rejections.
if (IS_THRESHOLD_ZERO(big, (NEARLY_ZERO(FLOATTYPE) * NEARLY_ZERO(FLOATTYPE)))) {
// if (IS_NEARLY_ZERO(big)) {
return false;
}
vv[i] = 1.0f / big;