class Triangle extends ATriangle {

	@Override
	public List<IVector2> lineIntersections(final ILine line)
	{
		ILineSegment ab = Lines.segmentFromPoints(a, b);
		ILineSegment bc = Lines.segmentFromPoints(b, c);
		ILineSegment ac = Lines.segmentFromPoints(a, c);
		ILineSegment[] lines = new ILineSegment[] { ab, ac, bc };
		List<IVector2> intersections = new ArrayList<>();
		for (ILineSegment segment : lines)
		{
			Optional<IVector2> intersection = segment.intersectLine(Lines.lineFromLegacyLine(line));
			intersection.ifPresent(intersections::add);
		}
		return intersections;
	}

	@SuppressWarnings("unused") private  Triangle();
	protected  Triangle(final IVector2 a, final IVector2 b, final IVector2 c);
	protected  Triangle(final Triangle triangle);

}