public void UpdateDragging(Vector3 handPosition, MagnificationManager.DragMode dragMode) { Vector3 delta = handPosition - dragStartPosition; //delta = Camera.main.worldToCameraMatrix.MultiplyVector(delta); //delta.z = -delta.z; if (dragMode == MagnificationManager.DragMode.Move) { if (displayMode != DisplayMode3D.Tagalong) { Display.transform.position = imageStartPosition + delta * 2; } } else if (dragMode == MagnificationManager.DragMode.Scale) { delta = Camera.main.transform.InverseTransformDirection(delta); float dragFactor = 1; if (Math.Abs(delta.x) > Math.Abs(delta.y)) { dragFactor = delta.x; } else { dragFactor = delta.y; } dragFactor = (float)Math.Pow(2, dragFactor * 3); SetScale(dragStartScale * dragFactor); } else if (dragMode == MagnificationManager.DragMode.Zoom) { delta = Camera.main.transform.InverseTransformDirection(delta); float dragFactor = 1; if (Math.Abs(delta.x) > Math.Abs(delta.y)) { dragFactor = delta.x; } else { dragFactor = delta.y; } dragFactor = (float)Math.Pow(2, dragFactor * 3); SetZoom(dragStartZoom * dragFactor); } }
public void UpdateDragging(Vector3 handPosition, MagnificationManager.DragMode dragMode) { Vector3 delta = handPosition - dragStartPosition; delta = Camera.main.transform.InverseTransformDirection(delta); if (dragMode == MagnificationManager.DragMode.Move) { float newX = imageStartPosition.x + delta.x * 3000; float newY = imageStartPosition.y + delta.y * 3000; SetPosition(new Vector2(newX, newY)); } else if (dragMode == MagnificationManager.DragMode.Scale) { float dragFactor = 1; if (Math.Abs(delta.x) > Math.Abs(delta.y)) { dragFactor = delta.x; } else { dragFactor = delta.y; } dragFactor = (float)Math.Pow(2, dragFactor * 3); SetScale(dragStartScale * dragFactor); //DebugText.text = "Zoom: " + zoom + ", Scale: " + scale + ", Width: " + resolution.x + ", Height: " + resolution.y; } else if (dragMode == MagnificationManager.DragMode.Zoom) { float dragFactor = 1; if (Math.Abs(delta.x) > Math.Abs(delta.y)) { dragFactor = delta.x; } else { dragFactor = delta.y; } dragFactor = (float)Math.Pow(2, dragFactor * 3); SetZoom(dragStartZoom * dragFactor); //DebugText.text = "Zoom: " + zoom + ", Scale: " + scale + ", Width: " + resolution.x + ", Height: " + resolution.y; } }