예제 #1
0
        public override void FromJson(Dictionary <string, Node> nodes, string data)
        {
            CurvesData d = JsonConvert.DeserializeObject <CurvesData>(data);

            SetBaseNodeDate(d);

            curves = new Dictionary <int, List <Point> >();
            points = new Dictionary <int, List <Point> >();

            foreach (int k in d.points.Keys)
            {
                List <Graph.GPoint> pts = d.points[k];
                points[k] = new List <Point>();

                Parallel.For(0, pts.Count, i =>
                {
                    Graph.GPoint gp = pts[i];
                    points[k].Add(gp.ToPoint());
                });
            }

            foreach (int k in points.Keys)
            {
                InitializeCurves(k, points[k]);
            }

            SetConnections(nodes, d.outputs);

            OnWidthHeightSet();
        }
예제 #2
0
        public JsonResult InvokeDataTransfer(string [] curves)
        {
            CurvesData.ClearPrevData();
            CurvesData.UpdateHeaders(curves);

            string requestedCurves = string.Join(",", curves);

            handler.InvokeDataTransfferAsync(requestedCurves).Wait();
            dataSubscriber.SubscribeData();

            return(Json(true, JsonRequestBehavior.AllowGet));
        }
예제 #3
0
 /// <summary>
 /// Supprimer une courbe
 /// </summary>
 /// <param name="curveName">Nom de la courbe à supprimer</param>
 public void DeleteCurve(String curveName)
 {
     if (CurvesData.ContainsKey(curveName))
     {
         CurvesData.Remove(curveName);
         CurvesFilled.Remove(curveName);
         CurvesPen.Remove(curveName);
     }
     if (CurvesDisplayed.ContainsKey(curveName))
     {
         CurvesDisplayed.Remove(curveName);
     }
 }
예제 #4
0
        public CurvesDialog(CurvesData effectData)
        {
            this.Build ();

            EffectData = effectData;

            drawing.DoubleBuffered = true;

            comboMap.Changed += HandleComboMapChanged;
            buttonReset.Clicked += HandleButtonResetClicked;
            checkRed.Toggled += HandleCheckToggled;
            checkGreen.Toggled += HandleCheckToggled;
            checkBlue.Toggled += HandleCheckToggled;
            drawing.ExposeEvent += HandleDrawingExposeEvent;
            drawing.MotionNotifyEvent += HandleDrawingMotionNotifyEvent;
            drawing.LeaveNotifyEvent += HandleDrawingLeaveNotifyEvent;
            drawing.ButtonPressEvent += HandleDrawingButtonPressEvent;

            ResetControlPoints ();
        }
예제 #5
0
        /// <summary>
        /// Ajouter un point à la courbe spécifiée
        /// Ajoute la courbe si elle n'existe pas encore
        /// </summary>
        /// <param name="curveName">Nom de la courbe auquel ajouter un point</param>
        /// <param name="value">Valeur à ajouter à la courbe</param>
        /// <param name="col">Couleur à associer à la courbe (null pour ne pas changer la couleur)</param>
        public void AddPoint(String curveName, double value, Color?col = null, bool fill = false)
        {
            lock (CurvesData)
            {
                List <double> data;

                if (CurvesData.ContainsKey(curveName))
                {
                    data = CurvesData[curveName];
                    if (col != null)
                    {
                        CurvesPen[curveName] = new Pen(col.Value);
                    }

                    CurvesFilled[curveName] = fill;
                }
                else
                {
                    data = new List <double>();
                    CurvesData.Add(curveName, data);
                    CurvesDisplayed.Add(curveName, true);
                    if (col != null)
                    {
                        CurvesPen.Add(curveName, new Pen(col.Value));
                    }
                    else
                    {
                        CurvesPen.Add(curveName, new Pen(Color.Black));
                    }

                    CurvesFilled.Add(curveName, fill);
                }

                data.Add(value);

                while (data.Count > pictureBox.Width)
                {
                    data.RemoveAt(0);
                }
            }
        }
예제 #6
0
    IEnumerator ColorCurves(CurvesData _data)
    {
        yield return(null);
        //float _from = _data._from;
        //float _to = _data._to;
        //float _time = _data._time;

        //if (colorCorrectionCurves == null) yield break;
        //colorStartCurveTime = Time.time;
        //colorCorrectionCurves.saturation = _from;
        //while (Time.time - colorStartCurveTime <= _time)
        //{
        //    colorCorrectionCurves.saturation = Mathf.Lerp(_from, _to, (Time.time - colorStartCurveTime) / _time);
        //    yield return new WaitForFixedUpdate();
        //}
        //colorCorrectionCurves.saturation = _to;
        //if (_to >= 1.0f && colorCorrectionCurves != null)
        //{
        //    colorCorrectionCurves.enabled = false;
        //}
    }
예제 #7
0
        public CurvesDialog(CurvesData effectData)
        {
            this.Build ();

            EffectData = effectData;

            drawing.DoubleBuffered = true;

            comboMap.Changed += HandleComboMapChanged;
            buttonReset.Clicked += HandleButtonResetClicked;
            checkRed.Toggled += HandleCheckToggled;
            checkGreen.Toggled += HandleCheckToggled;
            checkBlue.Toggled += HandleCheckToggled;
            drawing.ExposeEvent += HandleDrawingExposeEvent;
            drawing.MotionNotifyEvent += HandleDrawingMotionNotifyEvent;
            drawing.LeaveNotifyEvent += HandleDrawingLeaveNotifyEvent;
            drawing.ButtonPressEvent += HandleDrawingButtonPressEvent;

            ResetControlPoints ();
            AlternativeButtonOrder = new int[] { (int) Gtk.ResponseType.Ok, (int) Gtk.ResponseType.Cancel };
        }
예제 #8
0
        public override void FromJson(string data)
        {
            CurvesData d = JsonConvert.DeserializeObject <CurvesData>(data);

            SetBaseNodeDate(d);

            points   = new Dictionary <int, List <Point> >();
            minValue = d.min;
            maxValue = d.max;

            foreach (int k in d.points.Keys)
            {
                List <Graph.GPoint> pts = d.points[k];
                points[k] = new List <Point>();

                Parallel.For(0, pts.Count, i =>
                {
                    Graph.GPoint gp = pts[i];
                    points[k].Add(gp.ToPoint());
                });
            }
        }
예제 #9
0
        public override string GetJson()
        {
            CurvesData d = new CurvesData();

            FillBaseNodeData(d);
            d.points = new Dictionary <int, List <Graph.GPoint> >();

            foreach (int k in points.Keys)
            {
                List <Point> pts = points[k];
                d.points[k] = new List <Graph.GPoint>();

                Parallel.For(0, pts.Count, i =>
                {
                    Point p         = pts[i];
                    Graph.GPoint gp = new Graph.GPoint(p);
                    d.points[k].Add(gp);
                });
            }

            return(JsonConvert.SerializeObject(d));
        }
예제 #10
0
		public CurvesEffect ()
		{
			EffectData = new CurvesData ();
		}