package com.revolsys.geometry.model.coordinates.filter; import java.util.function.Predicate; import com.revolsys.geometry.model.Geometry; import com.revolsys.geometry.model.Point; import com.revolsys.geometry.model.segment.LineSegment; public class CrossingLineSegmentFilter implements Predicate<LineSegment> { private final LineSegment line; public CrossingLineSegmentFilter(final LineSegment line) { this.line = line; } @Override public boolean test(final LineSegment line) { if (this.line == line) { return false; } else { final Geometry intersection = this.line.getIntersection(line); if (intersection instanceof Point) { final Point intersectionPoint = (Point)intersection; if (this.line.isEndPoint(intersectionPoint)) { return false; } else { return true; } } else { return false; } } } }