public ILineSegment Resize(IntersectionDetector detector)
{
LineSegment lineSegment = new LineSegment(PointA, PointB, new Point(0, 0));
lineSegment.Id = Id;
Dictionary<ILineSegment, Point> intersections = detector.FindIntersections(lineSegment);
foreach (KeyValuePair<ILineSegment, Point> intersection in intersections)
{
if (intersection.Key.TriangulationPoint.X != 0 && intersection.Key.TriangulationPoint.Y != 0)
{
Point closestPoint;
if (intersection.Key.TriangulateClosestEndPoint(this, out closestPoint))
{
if (lineSegment.PointA == closestPoint)
{
lineSegment.PointA = intersection.Value;
}
else
{
lineSegment.PointB = intersection.Value;
}
}
}
}
return lineSegment;
}