freealise commited on
Commit
d3bb687
·
verified ·
1 Parent(s): 2ce5f76

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -8
app.py CHANGED
@@ -670,9 +670,17 @@ async(c, o, p, d, n, m)=>{
670
  window.a_old = 0;
671
  window.b_old = Math.PI / 2;
672
  window.compass = document.getElementById("compass");
673
-
674
- document.getElementById("model3D").getElementsByTagName("canvas")[0].addEventListener('pointermove', function() {
675
- if (md === true) {
 
 
 
 
 
 
 
 
676
  if (Math.abs(BABYLON.Engine.LastCreatedScene.activeCamera.radius - r_old) > 1/16) {
677
  BABYLON.Engine.LastCreatedScene.activeCamera.radius = r_old;
678
  } else {
@@ -687,11 +695,14 @@ async(c, o, p, d, n, m)=>{
687
  }
688
  document.getElementById('zoom').value = BABYLON.Engine.LastCreatedScene.activeCamera.fov;
689
  document.getElementById('zoom').parentNode.childNodes[2].innerText = document.getElementById('zoom').value;
690
-
691
- try {
692
- compass.style.transform = "rotateX(" + (BABYLON.Engine.LastCreatedScene.activeCamera.beta-Math.PI/2) + "rad) rotateZ(" + BABYLON.Engine.LastCreatedScene.activeCamera.alpha + "rad)";
693
- } catch(e) {alert(e);}
694
  }
 
 
 
 
695
  });
696
  document.getElementById("model3D").getElementsByTagName("canvas")[0].addEventListener('pointerdown', function() {
697
  md = true;
@@ -699,9 +710,15 @@ async(c, o, p, d, n, m)=>{
699
  document.getElementById("model3D").getElementsByTagName("canvas")[0].addEventListener('pointerup', function() {
700
  md = false;
701
  });
 
 
 
702
  document.getElementById("model3D").getElementsByTagName("canvas")[0].addEventListener('pointerleave', function() {
703
  md = false;
704
  });
 
 
 
705
 
706
  if (document.getElementById("model")) {
707
  document.getElementById("model").appendChild(document.getElementById("model3D"));
@@ -978,7 +995,7 @@ with gr.Blocks(css=css, js=js, head=head) as demo:
978
  #compass_box {
979
  top:1.5em;
980
  right:3px;
981
- position: fixed;
982
  border:1px dashed gray;
983
  border-radius: 50%;
984
  width:1.5em;
 
670
  window.a_old = 0;
671
  window.b_old = Math.PI / 2;
672
  window.compass = document.getElementById("compass");
673
+ window.x = 0;
674
+ window.y = 0;
675
+ window.xold = 0;
676
+ window.yold = 0;
677
+
678
+ document.getElementById("model3D").getElementsByTagName("canvas")[0].addEventListener('pointermove', function(evt) {
679
+ if (md === true) {
680
+ x = parseInt(evt.clientX - evt.target.getBoundingClientRect().x);
681
+ y = parseInt(evt.clientY - evt.target.getBoundingClientRect().y);
682
+
683
+ if (Math.abs(x-xold)>16 || Math.abs(y-yold)>16) {
684
  if (Math.abs(BABYLON.Engine.LastCreatedScene.activeCamera.radius - r_old) > 1/16) {
685
  BABYLON.Engine.LastCreatedScene.activeCamera.radius = r_old;
686
  } else {
 
695
  }
696
  document.getElementById('zoom').value = BABYLON.Engine.LastCreatedScene.activeCamera.fov;
697
  document.getElementById('zoom').parentNode.childNodes[2].innerText = document.getElementById('zoom').value;
698
+
699
+ xold=x;
700
+ yold=y;
 
701
  }
702
+ try {
703
+ compass.style.transform = "rotateX(" + (BABYLON.Engine.LastCreatedScene.activeCamera.beta-Math.PI/2) + "rad) rotateZ(" + BABYLON.Engine.LastCreatedScene.activeCamera.alpha + "rad)";
704
+ } catch(e) {alert(e);}
705
+ }
706
  });
707
  document.getElementById("model3D").getElementsByTagName("canvas")[0].addEventListener('pointerdown', function() {
708
  md = true;
 
710
  document.getElementById("model3D").getElementsByTagName("canvas")[0].addEventListener('pointerup', function() {
711
  md = false;
712
  });
713
+ document.getElementById("model3D").getElementsByTagName("canvas")[0].addEventListener('pointercancel', function() {
714
+ md = false;
715
+ });
716
  document.getElementById("model3D").getElementsByTagName("canvas")[0].addEventListener('pointerleave', function() {
717
  md = false;
718
  });
719
+ document.getElementById("model3D").getElementsByTagName("canvas")[0].addEventListener('pointerout', function() {
720
+ md = false;
721
+ });
722
 
723
  if (document.getElementById("model")) {
724
  document.getElementById("model").appendChild(document.getElementById("model3D"));
 
995
  #compass_box {
996
  top:1.5em;
997
  right:3px;
998
+ position:absolute;
999
  border:1px dashed gray;
1000
  border-radius: 50%;
1001
  width:1.5em;