public bool TriangulateClosestEndPoint(ILineSegment intersectingLineSegment, out Point closestPoint)
{
ILineSegment pointASegment = new LineSegment(intersectingLineSegment.PointA, TriangulationPoint);
ILineSegment pointBSegment = new LineSegment(intersectingLineSegment.PointB, TriangulationPoint);
IntersectionDetector detector = new IntersectionDetector();
detector.Add(pointASegment);
detector.Add(pointBSegment);
ILineSegment closestSegment;
Point closestSegmentIntersectionPoint;
ILineSegment segment = new LineSegment(this.PointA, this.PointB, this.TriangulationPoint, true);
if (detector.FindIntersection(segment, out closestSegment, out closestSegmentIntersectionPoint))
{
closestPoint = closestSegment.PointA;
return true;
}
else
{
closestPoint = new Point(0, 0);
return false;
}
}