void OnTouchReleased(TouchEndEventArgs eventArgs)
        {
            currentScreenLayout.OnTouchReleased(Input, eventArgs);

            // Return if this is not our original tap finger
            if (eventArgs.TouchID != tapTouchID)
            {
                return;
            }

            // Get delta time
            float dt = Time.ElapsedTime - tapTimeStamp;

            // If it is lesser than our tap margin, it is a tap!
            if (dt < tapTimeMargin)
            {
                // Notify CameraPageViewModel of a tap. This is used to hide
                // the settings drawer
                MessagingService.Send(this, MessageSubject.URHO_SURFACE_TAPPED);

                // Are we in grid mode? Test for camera selection
                if (currentScreenLayout.GetType() == typeof(GridScreenLayout))
                {
                    CastTouchRay(eventArgs.X, eventArgs.Y);
                }
            }
        }
Beispiel #2
0
        protected override void TouchEnd(TouchEndEventArgs e)
        {
            activeTouches.Remove(e.TouchID);

            cameraMover.AddDecayingHorizontalMovement(cameraMover.StaticHorizontalMovement);
            cameraMover.SetStaticHorizontalMovement(Vector2.Zero);
        }
        private void OnTouched(TouchEndEventArgs e)
        {
            var camera    = _scene.GetChild("CameraNode").GetComponent <Camera>();
            var cameraRay = camera.GetScreenRay((float)e.X / Graphics.Width, (float)e.Y / Graphics.Height);

            var octree = _scene.GetComponent <Octree>();

            octree.RaycastSingle(cameraRay, RayQueryLevel.Triangle, 100, DrawableFlags.Geometry);
        }
Beispiel #4
0
 private void HandleTouchEnd(TouchEndEventArgs args)
 {
     EndTouch(new TouchState
     {
         ID             = args.TouchID,
         ScreenPosition = new IntVector2(args.X, args.Y),
         Pressure       = 0.0f
     });
 }
        public override void OnTouchReleased(Input input, TouchEndEventArgs eventArgs)
        {
            // Only communicate camera selection when user is not scrolling
            if (selected)
            {
                MessagingCenter.Send(this, Messages.Subject.SET_CAMERA_SELECTION, Selection);
                selected = false;
            }

            CameraManager.EnableCameraScreens(false, Selection);
            Offset = 0;
        }
        void HandleTouchEnd3(TouchEndEventArgs args)
        {
            if (pickedNode != null)
            {
                StaticSprite2D staticSprite = pickedNode.GetComponent <StaticSprite2D>();
                staticSprite.Color = (new Color(1.0f, 1.0f, 1.0f, 1.0f)); // Restore picked sprite color
                pickedNode.RemoveComponent <ConstraintMouse2D>();         // Remove temporary constraint
                pickedNode = null;
            }

            touchMoveEventToken?.Unsubscribe();
            touchEndEventToken?.Unsubscribe();
        }
Beispiel #7
0
        void OnTouchEnd(TouchEndEventArgs e)
        {
            if (scaling)
            {
                return;
            }

            var pos = HitTest(e.X / (float)Graphics.Width, e.Y / (float)Graphics.Height);

            if (pos != null)
            {
                bookshelfNode.Position = pos.Value;
            }
        }
Beispiel #8
0
        void OnTouchEnd(TouchEndEventArgs e)
        {
            if (scaling)
            {
                return;
            }

            var pos = arkitComponent.HitTest(e.X / (float)Graphics.Width, e.Y / (float)Graphics.Height);

            if (pos != null)
            {
                mutantNode.Position = pos.Value;
            }
        }
Beispiel #9
0
		void Input_TouchEnd(TouchEndEventArgs e)
		{
			if (DateTime.UtcNow - touchStarted > TimeSpan.FromMilliseconds(200))
				return;

			Ray cameraRay = camera.GetScreenRay(e.X / (float)Application.Graphics.Width, e.Y / (float)Application.Graphics.Height);
			var result = octree.Raycast(cameraRay, RayQueryLevel.Triangle, 100, DrawableFlags.Geometry, 0x70000000);
			if (result != null && result.Count > 0)
			{
				var item = result.First();
				cubeNode.Position = item.Position;
				cubeNode.Translate(item.Normal / 50, TransformSpace.Local);
				PositionChanged?.Invoke(cubeNode.Position);
			}
		}
Beispiel #10
0
        void OnTouchEnd(TouchEndEventArgs e)
        {
            if (scaling)
            {
                return;
            }

            var hitTest = currentFrame.HitTest(e.X, e.Y);

            if (hitTest != null && hitTest.Count > 0)
            {
                var hitPos = hitTest[0].HitPose;
                mutantNode.Position = new Vector3(hitPos.Tx(), hitPos.Ty(), -hitPos.Tz());
            }
        }
Beispiel #11
0
		private void OnTouched(TouchEndEventArgs e)
		{
			Ray cameraRay = camera.GetScreenRay((float)e.X / Graphics.Width, (float)e.Y / Graphics.Height);
			var results = octree.RaycastSingle(cameraRay, RayQueryLevel.Triangle, 100, DrawableFlags.Geometry);
			if (results != null && results.Any())
			{
				var bar = results[0].Node?.Parent?.GetComponent<Bar>();
				if (selectedBar != bar)
				{
					selectedBar?.Deselect();
					selectedBar = bar;
					selectedBar?.Select();
				}
			}
		}
Beispiel #12
0
 void OnTouched(TouchEndEventArgs e)
 {
     Ray cameraRay = camera.GetScreenRay((float)e.X / Graphics.Width, (float)e.Y / Graphics.Height);
     var results = octree.RaycastSingle(cameraRay, RayQueryLevel.Triangle, 100, DrawableFlags.Geometry);
     if (results != null)
     {
         var bar = results.Value.Node?.Parent?.GetComponent<Bar>();
         if (SelectedBar != bar)
         {
             SelectedBar?.Deselect();
             SelectedBar = bar;
             SelectedBar?.Select();
         }
     }
 }
Beispiel #13
0
        void Input_TouchEnd(TouchEndEventArgs e)
        {
            if (DateTime.UtcNow - touchStarted > TimeSpan.FromMilliseconds(200))
            {
                return;
            }

            Ray cameraRay = camera.GetScreenRay(e.X / (float)Application.Graphics.Width, e.Y / (float)Application.Graphics.Height);
            var result    = octree.Raycast(cameraRay, RayQueryLevel.Triangle, 100, DrawableFlags.Geometry, 0x70000000);

            if (result != null && result.Count > 0)
            {
                var item = result.First();
                cubeNode.Position = item.Position;
                cubeNode.Translate(item.Normal / 50, TransformSpace.Local);
                PositionChanged?.Invoke(cubeNode.Position);
            }
        }
Beispiel #14
0
        void OnTouched(TouchEndEventArgs e)          // Means the touch event finishED and the touch is released
        {
            uint NumFingers = Input.NumTouches;

            Update3Dtext(staticNode, "displTouches", "[OnTouched]\nNumTouches=" + NumFingers + "\nDevice.RuntimePlatform=" + Device.RuntimePlatform + "\nInput.MouseVisible=" + Input.MouseVisible);

            if ((Device.RuntimePlatform == Device.UWP) && (Input.MouseVisible == true) && (NumFingers != 1))
            {
                NumFingers--;                                                                                                          /* if UWP and mouse visible, then compensate for NumFingers error */
            }
            if (NumFingers == 2 && movementsEnabled)
            {
                pinchStart = 0.0;
            }

            if (NumFingers == 1 && movementsEnabled)
            {
                Ray cameraRay = camera.GetScreenRay((float)e.X / Graphics.Width, (float)e.Y / Graphics.Height);
                var result    = octree.RaycastSingle(cameraRay, RayQueryLevel.Triangle, 100, DrawableFlags.Geometry);
                if (result != null)
                {
                    var Button = result.Value.Node?.Parent?.GetComponent <Button>();
                    if (Button != null)
                    {
                        Update3Dtext(staticNode, "displActivated", "Activated:" + Button.Touch());

                        string action = Button.Touch();
                        if (action == "bigger")
                        {
                            plotNode.RunActionsAsync(new EaseBackOut(new ScaleTo(0.3f, plotNode.Scale.X + 0.3f)));
                        }
                        if (action == "smaller")
                        {
                            plotNode.RunActionsAsync(new EaseBackOut(new ScaleTo(0.3f, plotNode.Scale.X - 0.3f)));
                        }
                        if (action == "turn")
                        {
                            plotNode.RunActionsAsync(new RotateBy(100.0f, 0.0f, -3600.0f, 0.0f));
                        }
                    }
                }
            }
        }
Beispiel #15
0
        private void OnTouched(TouchEndEventArgs e)
        {
            Ray cameraRay = camera.GetScreenRay((float)e.X / Graphics.Width, (float)e.Y / Graphics.Height);
            var result    = octree.RaycastSingle(cameraRay);

            if (result != null)
            {
                var frame = result.Value.Node?.Parent?.GetComponent <Frame>();
                if (selectedFrame != frame)
                {
                    selectedFrame?.Deselect();
                    selectedFrame = frame;
                    selectedFrame?.Select();
                }
            }
            else
            {
                selectedFrame?.Deselect();
                selectedFrame = null;
            }
        }
Beispiel #16
0
        void OnTouched(TouchEndEventArgs e)
        {
            Ray cameraRay = camera.GetScreenRay((float)e.X / Graphics.Width, (float)e.Y / Graphics.Height);
            var results   = octree.Raycast(cameraRay, RayQueryLevel.Triangle, 500, DrawableFlags.Geometry);

            if (results != null && results.Any())
            {
                var star = results[0].Node?.Parent?.GetComponent <Star>();
                if (SelectedStar != star)
                {
                    if (SelectedStar != null)
                    {
                        var    trackNode = scene.CreateChild();
                        Random randomY   = new Random();

                        trackNode.Position = SelectedStar.Node.Position;
                        var track = new Track();
                        trackNode.AddComponent(track);

                        var angle = TrigonometryHelper.GetAngle(SelectedStar.Node.Position, star.Node.Position);

                        trackNode.Rotation = new Quaternion(0, 0, angle);
                        trackNode.Position = TrigonometryHelper.GetBetween(SelectedStar.Node.Position, star.Node.Position);
                        trackNode.Position = new Vector3(trackNode.Position.X, trackNode.Position.Y, 0);
                        trackNode.Scale    = new Vector3(TrigonometryHelper.GetDistance(SelectedStar.Node.Position, star.Node.Position), 0.5f, 1);
                    }
                    SelectedStar?.Deselect();
                    SelectedStar = star;
                    SelectedStar?.Select();
                }
                else
                {
                    SelectedStar?.Deselect();
                    SelectedStar = null;
                }
            }
        }
Beispiel #17
0
 void Input_TouchEnd(TouchEndEventArgs e)
 {
     touchX = e.X;
     touchY = e.Y;
 }
Beispiel #18
0
 public override void OnTouchReleased(Input input, TouchEndEventArgs eventArgs)
 {
 }
 private void OnTouchEnd(TouchEndEventArgs args)
 {
     _touchEnd?.Invoke(this, new TouchEndEventArguments(args));
 }
Beispiel #20
0
 protected abstract void TouchEnd(TouchEndEventArgs e);
 void Input_TouchEnd(TouchEndEventArgs e)
 {
     ThrowBall();
 }
Beispiel #22
0
 public TouchEndEventArguments(TouchEndEventArgs args) : base(args)
 {
 }
Beispiel #23
0
 protected TouchEventArguments(TouchEndEventArgs args)
 {
     TouchID = args.TouchID;
     X       = args.X;
     Y       = args.Y;
 }
        void HandleTouchEnd3(TouchEndEventArgs args)
        {
            if (pickedNode != null)
            {
                StaticSprite2D staticSprite = pickedNode.GetComponent<StaticSprite2D>();
                staticSprite.Color = (new Color(1.0f, 1.0f, 1.0f, 1.0f)); // Restore picked sprite color
                pickedNode.RemoveComponent<ConstraintMouse2D>(); // Remove temporary constraint
                pickedNode = null;
            }

            touchMoveEventToken?.Unsubscribe();
            touchEndEventToken?.Unsubscribe();
        }
Beispiel #25
0
        void OnTouchEnd(TouchEndEventArgs e)
        {
            if (realCursor != null)
            {
                if (realCursor.Position != null)
                {
                    var pos = realCursor.Position.Value;
                    realCursor.Remove();
                    realCursor = null;

                    var fakePlaneNode = Scene.CreateChild();
                    fakePlaneNode.Position = pos;
                    fakePlaneNode.Scale    = new Vector3(100, 1, 100);
                    var fakePlane = fakePlaneNode.CreateComponent <Urho.Shapes.Plane>();
                    fakePlane.Color = Color.Transparent;

                    pointerNode = Scene.CreateChild();
                    pointerNode.SetScale(0.03f);
                    var pointer = pointerNode.CreateComponent <Sphere>();
                    pointer.Color    = Color.Cyan;
                    pointerNode.Name = "RulerPoint";

                    textNode = pointerNode.CreateChild();
                    textNode.SetScale(3);
                    textNode.Translate(Vector3.UnitY * 2);
                    textNode.AddRef();
                    var text = textNode.CreateComponent <Text3D>();
                    text.HorizontalAlignment = HorizontalAlignment.Center;
                    text.VerticalAlignment   = VerticalAlignment.Top;
                    text.TextEffect          = TextEffect.Stroke;
                    text.EffectColor         = Color.Black;
                    text.SetColor(Color.White);
                    text.SetFont(CoreAssets.Fonts.AnonymousPro, 50);
                }
                return;
            }

            if (cursorPos == null)
            {
                return;
            }

            var savedPoint = pointerNode;

            textNode.Parent.RemoveChild(textNode);

            points.Add(savedPoint);
            pointerNode = pointerNode.Clone();

            savedPoint.AddChild(textNode);

            if (points.Count > 1)
            {
                float distance = 0f;
                for (int i = 1; i < points.Count; i++)
                {
                    distance += Vector3.Distance(points[i - 1].Position, points[i].Position);
                }
                textNode.GetComponent <Text3D>().Text = distance.ToString("F2") + "m";
            }

            if (prevNode != null)
            {
                AddConnection(savedPoint, prevNode);
            }
            prevNode = savedPoint;

            cursorPos = null;
        }
Beispiel #26
0
 private void Input_TouchEnd(TouchEndEventArgs obj)
 {
     TouchedNode = null;
 }
 public abstract void OnTouchReleased(Input input, TouchEndEventArgs eventArgs);
Beispiel #28
0
 protected override void TouchEnd(TouchEndEventArgs e)
 {
 }