Selaa lähdekoodia

canvas3d: do not autoreset camera if the "breaking" sphere mutually overlaps with current camera sphere

David Sehnal 4 vuotta sitten
vanhempi
commit
2987240df4
1 muutettua tiedostoa jossa 2 lisäystä ja 1 poistoa
  1. 2 1
      src/mol-canvas3d/canvas3d.ts

+ 2 - 1
src/mol-canvas3d/canvas3d.ts

@@ -420,7 +420,8 @@ namespace Canvas3D {
                 const b = r.values.boundingSphere.ref.value;
                 if (!b.radius) continue;
 
-                if (!Sphere3D.includes(oldBoundingSphereVisible, b)) return true;
+                const cameraDist = Vec3.distance(cameraSphere.center, b.center);
+                if (cameraDist > cameraSphere.radius && cameraDist > b.radius && !Sphere3D.includes(oldBoundingSphereVisible, b)) return true;
                 if (Sphere3D.overlaps(cameraSphere, b)) cameraSphereOverlapsNone = false;
             }