package oripa.paint.outline;
import java.util.Collection;
import javax.vecmath.Vector2d;
import oripa.ORIPA;
import oripa.geom.GeomUtil;
import oripa.geom.Line;
import oripa.paint.util.PairLoop;
public class IsOnTempOutlineLoop implements PairLoop.Block<Vector2d> {
private Vector2d target;
public Vector2d execute(
Collection<Vector2d> outlineVertices, Vector2d v) {
target = v;
return PairLoop.iterateAll(outlineVertices, this);
}
@Override
public boolean yield(Vector2d p0, Vector2d p1) {
double paperSize = ORIPA.doc.getPaperSize();
Line line = new Line(p0, new Vector2d(p1.x - p0.x, p1.y - p0.y));
double distanceToLine = GeomUtil.DistancePointToLine(
target,
line);
if (distanceToLine < paperSize * 0.001) {
return false;
}
return true;
}
}