Browse Source

fix transform controls conflict with interpolation

Nikolay Suslov 5 years ago
parent
commit
51314e92b1

+ 7 - 0
public/vwf/model/aframe/addon/TransformControls.js

@@ -853,6 +853,10 @@
 
 				if ( intersect ) {
 
+					let viewDriver = vwf.views["vwf/view/aframeComponent"];
+					viewDriver.interpolateView = false;
+
+
 					event.preventDefault();
 					event.stopPropagation();
 
@@ -1102,6 +1106,9 @@
 
 			if ( event.button !== undefined && event.button !== 0 ) return;
 
+			let viewDriver = vwf.views["vwf/view/aframeComponent"];
+			viewDriver.interpolateView = true;
+
 			if ( _dragging && ( scope.axis !== null ) ) {
 
 				mouseUpEvent.mode = _mode;

+ 2 - 2
public/vwf/model/aframe/addon/aframe-interpolation.js

@@ -60,7 +60,7 @@ AFRAME.registerComponent('interpolation', {
       this.nodeState = interNode[1];
     }
 
-    if (this.enabled && this.node && this.node.interpolate) {
+    if (this.enabled && this.node && this.node.interpolate && this.driver.interpolateView) {
       this.setInterpolatedTransforms(timepassed);
 
       // this.restoreTransforms();
@@ -74,7 +74,7 @@ AFRAME.registerComponent('interpolation', {
 
   tock: function (t, dt) {
     if (this.node) {
-      if (this.enabled && this.node.interpolate) {
+      if (this.enabled && this.node.interpolate && this.driver.interpolateView) {
         this.restoreTransforms();
       }
 

+ 4 - 3
public/vwf/view/aframeComponent.js

@@ -23,6 +23,7 @@ define(["module", "vwf/view"], function (module, view) {
             this.realTickDif = 50;
             this.lastrealTickDif = 50;
             this.lastRealTick = performance.now();
+            this.interpolateView = true;
 
             this.state.appInitialized = false;
 
@@ -215,9 +216,9 @@ define(["module", "vwf/view"], function (module, view) {
         },
 
         ticked: function (vwfTime) {
-
-            lerpTick();
-
+           
+                lerpTick();
+            
         },
 
         tocked: function (vwfTime) {