use of com.revolsys.geometry.model.Point in project com.revolsys.open by revolsys.
the class DistanceToPointFinder method computeDistance.
public static void computeDistance(final LineString line, final Point pt, final PointPairDistance ptDist) {
for (final Segment segment : line.segments()) {
// this is somewhat inefficient - could do better
final Point closestPt = segment.closestPoint(pt);
ptDist.setMinimum(closestPt, pt);
}
}
use of com.revolsys.geometry.model.Point in project com.revolsys.open by revolsys.
the class DistanceToPointFinder method computeDistance.
public static void computeDistance(final Geometry geometry, final Point pt, final PointPairDistance ptDist) {
if (geometry instanceof LineString) {
computeDistance(geometry, pt, ptDist);
} else if (geometry instanceof Polygon) {
computeDistance(geometry, pt, ptDist);
} else if (geometry.isGeometryCollection()) {
for (int i = 0; i < geometry.getGeometryCount(); i++) {
final Geometry g = geometry.getGeometry(i);
computeDistance(g, pt, ptDist);
}
} else {
// assume geom is Point
ptDist.setMinimum(geometry.getPoint(), pt);
}
}
use of com.revolsys.geometry.model.Point in project com.revolsys.open by revolsys.
the class DistanceOp method computeContainmentDistance.
private boolean computeContainmentDistance(final List<Point> points, final List<Polygon> polygons) {
for (final Point point : points) {
final double x = point.getX();
final double y = point.getY();
for (final Polygon polygon : polygons) {
if (computeContainmentDistance(polygon, x, y)) {
return true;
}
}
}
return false;
}
use of com.revolsys.geometry.model.Point in project com.revolsys.open by revolsys.
the class OffsetPointGenerator method extractPoints.
private void extractPoints(final LineString line, final double offsetDistance, final List<Point> offsetPts) {
final int vertexCount = line.getVertexCount();
double x1 = line.getX(0);
double y1 = line.getY(0);
for (int vertexIndex = 1; vertexIndex < vertexCount; vertexIndex++) {
final double x2 = line.getX(vertexIndex);
final double y2 = line.getY(vertexIndex);
computeOffsetPoints(x1, y1, x2, y2, offsetDistance, offsetPts);
x1 = x2;
y1 = y2;
}
}
use of com.revolsys.geometry.model.Point in project com.revolsys.open by revolsys.
the class PolygonizeGraph method addEdge.
/**
* Add a {@link LineString} forming an edge of the polygon graph.
* @param line the line to add
*/
public void addEdge(final LineString line) {
final LineString cleanLine = line.removeDuplicatePoints();
if (cleanLine.isEmpty()) {
return;
}
if (cleanLine.getVertexCount() < 2) {
return;
}
final Point startPt = cleanLine.getVertex(0).newPoint2D();
final Point endPt = cleanLine.getToVertex(0).newPoint2D();
final Node nStart = getNode(startPt);
final Node nEnd = getNode(endPt);
final DirectedEdge de0 = new PolygonizeDirectedEdge(nStart, nEnd, cleanLine.getVertex(1).newPoint2D(), true);
final DirectedEdge de1 = new PolygonizeDirectedEdge(nEnd, nStart, cleanLine.getVertex(-2).newPoint2D(), false);
final Edge edge = new PolygonizeEdge(line);
edge.setDirectedEdges(de0, de1);
add(edge);
}
Aggregations