Browse Source

compare quats better

David Rose 23 years ago
parent
commit
49e157c65d
1 changed files with 14 additions and 5 deletions
  1. 14 5
      panda/src/pgraph/transformState.cxx

+ 14 - 5
panda/src/pgraph/transformState.cxx

@@ -220,18 +220,27 @@ operator < (const TransformState &other) const {
     return 0;
     return 0;
   }
   }
 
 
-  if ((_flags & (F_components_given | F_hpr_given)) == 
-      (F_components_given | F_hpr_given)) {
+  if ((_flags & (F_components_given | F_hpr_given | F_quat_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) {
-      return c < 0;
+
+    if ((_flags & F_hpr_given) != 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;
   }
   }