override public bool Execute() { if (_adjustment != null) { ObjcParameter objc = _adjustment[0] as ObjcParameter; ReferenceParameter obj = objc.Parameters["Chnl"] as ReferenceParameter; string origChannel = (obj.Set[0] as EnmrType).Value; ListParameter curve = objc.Parameters["Crv"] as ListParameter; CoordinateList <byte> controlPoints = new CoordinateList <byte>(); foreach (Parameter parameter in curve) { ObjcParameter point = parameter as ObjcParameter; double x = (point.Parameters["Hrzn"] as DoubleParameter).Value; double y = (point.Parameters["Vrtc"] as DoubleParameter).Value; controlPoints.Add(new Coordinate <byte>((byte)x, (byte)y)); } HistogramChannel channel; switch (origChannel) { case "Cmps": channel = HistogramChannel.Value; break; case "Rd": channel = HistogramChannel.Red; break; case "Grn": channel = HistogramChannel.Green; break; case "Bl": channel = HistogramChannel.Blue; break; default: Console.WriteLine("CurvesEvent: " + origChannel); return(false); } ActiveDrawable.CurvesSpline(channel, controlPoints); } else { Console.WriteLine("CurvesEvent: adjustment == null?"); } return(true); }
override public bool Execute() { CoordinateList <byte> controlPoints = new CoordinateList <byte>() { new Coordinate <byte>(0, 0), new Coordinate <byte>(127, 127), new Coordinate <byte>(255, 0) }; ActiveDrawable.CurvesSpline(HistogramChannel.Value, controlPoints); return(true); }