in UWP-Advanced-Inking/UnprocessedInput/UnprocessedInput/MainPage.xaml.cs [121:168]
private void UnprocessedInput_PointerReleased(InkUnprocessedInput sender, Windows.UI.Core.PointerEventArgs args)
{
lasso.Points.Add(args.CurrentPoint.RawPosition);
List<Line> linesToAdd = new List<Line>();
foreach (Line line in ShapesCanvas.Children.OfType<Line>())
{
bool LineIntersection = false;
bool SegmentIntersection = false;
PointF IntersectionPoint;
PointF p2;
PointF p3;
FindIntersection(
// The line in the canvas
new PointF((float)line.X1, (float)line.Y1),
new PointF((float)line.X2, (float)line.Y2),
// The 'cutting line'
new PointF((float)lasso.Points.First().X, (float)lasso.Points.First().Y),
new PointF((float)lasso.Points.Last().X, (float)lasso.Points.Last().Y),
out LineIntersection,
// Indicate if there is an intersection
out SegmentIntersection,
// The intersection point
out IntersectionPoint,
out p2, out p3);
if (SegmentIntersection)
{
List<Line> lines = CutTheLine(line, IntersectionPoint);
linesToAdd.AddRange(lines);
}
}
foreach (Line line in linesToAdd)
{
ShapesCanvas.Children.Add(line);
}
ShapesCanvas.Children.Remove(lasso);
}