compare quats better

This commit is contained in:
David Rose 2002-07-15 18:18:06 +00:00
parent 44f3ceb82a
commit 49e157c65d

View File

@ -220,18 +220,27 @@ operator < (const TransformState &other) const {
return 0; return 0;
} }
if ((_flags & (F_components_given | F_hpr_given)) == if ((_flags & (F_components_given | F_hpr_given | F_quat_given)) ==
(F_components_given | F_hpr_given)) { (F_components_given | F_hpr_given | F_quat_given)) {
// If the transform was specified componentwise, compare them // If the transform was specified componentwise, compare them
// componentwise. // componentwise.
int c = _pos.compare_to(other._pos); int c = _pos.compare_to(other._pos);
if (c != 0) { if (c != 0) {
return c < 0; return c < 0;
} }
c = _hpr.compare_to(other._hpr);
if (c != 0) { if ((_flags & F_hpr_given) != 0) {
return c < 0; c = _hpr.compare_to(other._hpr);
if (c != 0) {
return c < 0;
}
} else if ((_flags & F_quat_given) != 0) {
c = _quat.compare_to(other._quat);
if (c != 0) {
return c < 0;
}
} }
c = _scale.compare_to(other._scale); c = _scale.compare_to(other._scale);
return c < 0; return c < 0;
} }