void IChangedPositionHandler.Handle(ChangedPosition chp)
        {
            ChangedPosition oldChp;

            _positions.TryRemove(chp.Key, out oldChp);
            _positions.TryAdd(chp.Key, chp);
        }
Beispiel #2
0
 public void HandleChangedPosition(ChangedPosition chp)
 {
     if (_chpHandler != null)
     {
         _chpHandler.Handle(chp);
     }
 }
Beispiel #3
0
        //private void AddPointFromMouse(int mouseX, int mouseY)
        //{
        //	double x = ConvertX(mouseX);
        //	double y = ConvertY(mouseY);
        //	var series = chart1.Series.First();
        //	series.Points.AddXY(x, y);
        //	series.Sort(PointSortOrder.Ascending, "X");
        //	CallOnChangePoint(series.Points);
        //}

        private void SetCursorPositionFromMouse(int mouseX)
        {
            double x    = ConvertX(mouseX);
            var    area = chart1.ChartAreas.First();

            area.CursorX.Position = x;
            ChangedPosition?.Invoke(x);
        }
        private void Timer_Tick(object sender, EventArgs e)
        {
            var p = CursorPosition.GetCursorPosition();

            if (Temp != p)
            {
                Temp = p;
                ChangedPosition?.Invoke(p, null);
            }
        }
Beispiel #5
0
        public void Uniforms_OnAdd(object sender, string uniformName)
        {
            if (string.IsNullOrEmpty(uniformName))
            {
                return;
            }
            var uniforms = sender as IUniforms;

            if (ReferenceEquals(null, uniforms))
            {
                return;
            }
            var kfs           = uniforms.GetKeyFrames(uniformName);
            var visualisation = new FacadeKeyframesVisualisation(uniformName, kfs);

            visualisation.ChangedPosition += (position) => ChangedPosition?.Invoke(position);
            visualisation.KeyDown         += (s, a) => { KeyDown?.Invoke(s, a); };
            graphs.Add(uniformName, visualisation);
        }
Beispiel #6
0
 public FacadeKeyframesVisualisation(string uniformName, IKeyFrames kfs)
 {
     formGraph = new FormGraph(uniformName);
     formGraph.ChangedPoints   += FormGraph_OnChangePoints;
     formGraph.ChangedPosition += (pos) => { ChangedPosition?.Invoke((float)pos); };
     formGraph.KeyDown         += (sender, args) => { KeyDown?.Invoke(sender, args); };
     formGraph.CopyCommand     += (sender, args) => { if (!ReferenceEquals(null, kfs))
                                                      {
                                                          kfs.CopyKeyframesToClipboard();
                                                      }
     };
     formGraph.PasteCommand += (sender, args) => { if (!ReferenceEquals(null, kfs))
                                                   {
                                                       kfs.PasteKeyframesFromClipboard();
                                                   }
     };
     currentUniform = uniformName;
     this.kfs       = kfs;
     Update();
 }
Beispiel #7
0
        public HttpResponseMessage Post(ChangedPosition chp)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateResponseForInvalidModelState());
            }

            EventService.Instance.HandleChangedPosition(chp);

            dynamic data      = new ExpandoObject();
            var     locations = new LinkedList <LocationDTO>();
            var     offers    = new LinkedList <dynamic>();

            using (var repos = DataRepos.Instance)
            {
                foreach (var location in repos.Locations.GetAll().Where(x =>
                                                                        double.Parse(x.Lat, CultureInfo.InvariantCulture) < double.Parse(chp.NWCoord.Lat, CultureInfo.InvariantCulture) &&
                                                                        double.Parse(x.Lat, CultureInfo.InvariantCulture) > double.Parse(chp.SECoord.Lat, CultureInfo.InvariantCulture) &&
                                                                        double.Parse(x.Lng, CultureInfo.InvariantCulture) < double.Parse(chp.SECoord.Lng, CultureInfo.InvariantCulture) &&
                                                                        double.Parse(x.Lng, CultureInfo.InvariantCulture) > double.Parse(chp.NWCoord.Lng, CultureInfo.InvariantCulture)))
                {
                    locations.AddLast(location);

                    var nowMillis = (DateTime.Now - new DateTime(1970, 1, 1)).TotalMilliseconds;
                    foreach (var offer in repos.Offers.GetByLocationId(location.Id, (long)nowMillis))
                    {
                        offers.AddLast(offer.AddProperty("LocationName", location.Name));
                    }
                }
            }

            data.Locations = locations.AsQueryable();
            data.Offers    = offers.AsQueryable();

            return(Request.CreateResponse(HttpStatusCode.OK, (object)data));
        }
Beispiel #8
0
        private void MoveNode(float timeStep, IInputPermissions inputPermissions, string key)
        {
            var prevPos = Node.Position;

            //move by keyboard
            var input = Application.Input;

            if (inputPermissions.CanUseKeyboard)
            {
                if (input.GetKeyDown(Key.W))
                {
                    Node.Translate(Vector3.UnitZ * MoveSpeed * timeStep, TransformSpace.Local);
                }
                if (input.GetKeyDown(Key.S))
                {
                    Node.Translate(-Vector3.UnitZ * MoveSpeed * timeStep, TransformSpace.Local);
                }
                if (input.GetKeyDown(Key.A))
                {
                    Node.Translate(-Vector3.UnitX * MoveSpeed * timeStep, TransformSpace.Local);
                }
                if (input.GetKeyDown(Key.D))
                {
                    Node.Translate(Vector3.UnitX * MoveSpeed * timeStep, TransformSpace.Local);
                }
                if (input.GetKeyDown(Key.C))
                {
                    Node.Translate(-Vector3.UnitY * MoveSpeed * timeStep, TransformSpace.Local);
                }
                if (input.GetKeyDown(Key.E))
                {
                    Node.Translate(Vector3.UnitY * MoveSpeed * timeStep, TransformSpace.Local);
                }
            }

            //move by mouse
            var mousePos = input.GetMousePositionOrTouchPosition(_usingTouch);

            if (_prevMousePos != mousePos)
            {
                _prevMousePos = mousePos;
                if (inputPermissions.CanUseMouse)
                {
                    var camera   = (Application as App).CameraNode.GetComponent <Camera>();
                    var graphics = Application.Graphics;
                    Ray ray      = camera.GetScreenRay((float)mousePos.X / graphics.Width, (float)mousePos.Y / graphics.Height);
                    var dist     = ray.HitDistance(_plane);
                    var pos      = (ray.Direction * dist) + ray.Origin;
                    pos = pos + _offset;
                    //constrain to selected axes
                    switch (key)
                    {
                    case "x": pos = new Vector3(pos.X, Node.Position.Y, Node.Position.Z); break;

                    case "y": pos = new Vector3(Node.Position.X, pos.Y, Node.Position.Z); break;

                    case "z": pos = new Vector3(Node.Position.X, Node.Position.Y, pos.Z); break;
                    }
                    Node.Position = pos;
                }
            }

            //fire event
            if (prevPos != Node.Position)
            {
                ChangedPosition?.Invoke(this, new TranformGizmoEventArgs()
                {
                    X = Node.Position.X, Y = Node.Position.Y, Z = Node.Position.Z
                });
            }
        }