package com.revolsys.geometry.index.visitor;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.function.Consumer;
import com.revolsys.geometry.model.Geometry;
import com.revolsys.geometry.model.segment.LineSegment;
public class LineSegmentIntersectionVisitor implements Consumer<LineSegment> {
private final Set<Geometry> intersections = new LinkedHashSet<>();
private final LineSegment querySeg;
public LineSegmentIntersectionVisitor(final LineSegment querySeg) {
this.querySeg = querySeg;
}
@Override
public void accept(final LineSegment segment) {
if (segment.getBoundingBox().intersects(this.querySeg.getBoundingBox())) {
final Geometry intersection = this.querySeg.getIntersection(segment);
if (intersection != null && intersection.isEmpty()) {
this.intersections.add(intersection);
}
}
}
public Set<Geometry> getIntersections() {
return this.intersections;
}
}