Beispiel #1
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 #3
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 #4
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 #5
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
                });
            }
        }