private void AddKey_Click(object sender, RoutedEventArgs e)
{
Point pos = (Point)(sender as MenuItem).Tag;
double inVal = unrealX(pos.X);
LinkedListNode<CurvePoint> node;
try
{
node = SelectedCurve.CurvePoints.Find(SelectedCurve.CurvePoints.First(x => x.InVal > inVal));
SelectedCurve.AddPoint(new CurvePoint((float)inVal, (float)unrealY(ActualHeight - pos.Y), 0, 0, node.Value.InterpMode), node);
}
catch (Exception)
{
node = SelectedCurve.CurvePoints.Last;
SelectedCurve.AddPoint(new CurvePoint((float)inVal, (float)unrealY(ActualHeight - pos.Y), 0, 0, node?.Value.InterpMode ?? CurveMode.CIM_CurveUser), node, false);
}
Paint(true);
}