static boolean isWeakSimple(MultiVertexGeometry geom, double tol) { return ((MultiVertexGeometryImpl) geom._getImpl()).getIsSimple(tol) > 0; }
/** * Appends points from another multipoint at the end of this multipoint. * * @param src * The mulitpoint to append to this multipoint. * @param srcFrom * The start index in the source multipoint from which to start * appending points. * @param srcTo * The end index in the source multipoint right after the last * point to be appended. Use -1 to indicate the rest of the * source multipoint. */ public void add(MultiVertexGeometry src, int srcFrom, int srcTo) { m_impl.add((MultiVertexGeometryImpl) src._getImpl(), srcFrom, srcTo); }
static boolean isWeakSimple(MultiVertexGeometry geom, double tol) { return ((MultiVertexGeometryImpl) geom._getImpl()).getIsSimple(tol) > 0; }
/** * Appends points from another multipoint at the end of this multipoint. * * @param src * The mulitpoint to append to this multipoint. * @param srcFrom * The start index in the source multipoint from which to start * appending points. * @param srcTo * The end index in the source multipoint right after the last * point to be appended. Use -1 to indicate the rest of the * source multipoint. */ public void add(MultiVertexGeometry src, int srcFrom, int srcTo) { m_impl.add((MultiVertexGeometryImpl) src._getImpl(), srcFrom, srcTo); }
._getImpl(); AttributeStreamOfDbl position = (AttributeStreamOfDbl) mpImpl .getAttributeStreamRef((Semantics.POSITION));
private static int quickTest2DMVEnvelopeRasterOnly( MultiVertexGeometry geomA, Envelope2D geomBEnv, double tolerance) { // Use rasterized Geometry only: RasterizedGeometry2D rgeomA; MultiVertexGeometryImpl mpImpl = (MultiVertexGeometryImpl) geomA ._getImpl(); GeometryAccelerators gaccel = mpImpl._getAccelerators(); if (gaccel != null) { rgeomA = gaccel.getRasterizedGeometry(); } else return -1; if (rgeomA != null) { HitType hitres = rgeomA.queryEnvelopeInGeometry(geomBEnv); if (hitres == RasterizedGeometry2D.HitType.Outside) return (int) Relation.Disjoint; if (hitres == RasterizedGeometry2D.HitType.Inside) return (int) Relation.Contains; } else return -1; return 0; }
private static int quickTest2DMVPointRasterOnly(MultiVertexGeometry geomA, Point2D ptB, double tolerance) { // Use rasterized Geometry: RasterizedGeometry2D rgeomA = null; MultiVertexGeometryImpl mpImpl = (MultiVertexGeometryImpl) geomA ._getImpl(); GeometryAccelerators gaccel = mpImpl._getAccelerators(); if (gaccel != null) { rgeomA = gaccel.getRasterizedGeometry(); } if (rgeomA != null) { RasterizedGeometry2D.HitType hitres = rgeomA.queryPointInGeometry( ptB.x, ptB.y); if (hitres == RasterizedGeometry2D.HitType.Outside) return (int) Relation.Disjoint; if (hitres == RasterizedGeometry2D.HitType.Inside) return (int) Relation.Contains; } else return -1; return 0; }
private static int quickTest2DMVPointRasterOnly(MultiVertexGeometry geomA, Point2D ptB, double tolerance) { // Use rasterized Geometry: RasterizedGeometry2D rgeomA = null; MultiVertexGeometryImpl mpImpl = (MultiVertexGeometryImpl) geomA ._getImpl(); GeometryAccelerators gaccel = mpImpl._getAccelerators(); if (gaccel != null) { rgeomA = gaccel.getRasterizedGeometry(); } if (rgeomA != null) { RasterizedGeometry2D.HitType hitres = rgeomA.queryPointInGeometry( ptB.x, ptB.y); if (hitres == RasterizedGeometry2D.HitType.Outside) return (int) Relation.Disjoint; if (hitres == RasterizedGeometry2D.HitType.Inside) return (int) Relation.Contains; } else return -1; return 0; }
._getImpl(); AttributeStreamOfDbl position = (AttributeStreamOfDbl) mpImpl .getAttributeStreamRef((Semantics.POSITION));
private static int quickTest2DMVEnvelopeRasterOnly( MultiVertexGeometry geomA, Envelope2D geomBEnv, double tolerance) { // Use rasterized Geometry only: RasterizedGeometry2D rgeomA; MultiVertexGeometryImpl mpImpl = (MultiVertexGeometryImpl) geomA ._getImpl(); GeometryAccelerators gaccel = mpImpl._getAccelerators(); if (gaccel != null) { rgeomA = gaccel.getRasterizedGeometry(); } else return -1; if (rgeomA != null) { HitType hitres = rgeomA.queryEnvelopeInGeometry(geomBEnv); if (hitres == RasterizedGeometry2D.HitType.Outside) return (int) Relation.Disjoint; if (hitres == RasterizedGeometry2D.HitType.Inside) return (int) Relation.Contains; } else return -1; return 0; }
Proximity2DResult multiVertexGetNearestVertex(MultiVertexGeometry geom, Point2D inputPoint) { MultiVertexGeometryImpl mpImpl = (MultiVertexGeometryImpl) geom ._getImpl(); AttributeStreamOfDbl position = (AttributeStreamOfDbl) mpImpl .getAttributeStreamRef((Semantics.POSITION)); int pointCount = geom.getPointCount(); int closestIndex = 0; double closestx = 0.0; double closesty = 0.0; double closestDistanceSq = NumberUtils.doubleMax(); for (int i = 0; i < pointCount; i++) { Point2D pt = new Point2D(); position.read(2 * i, pt); double distanceSq = Point2D.sqrDistance(pt, inputPoint); if (distanceSq < closestDistanceSq) { closestx = pt.x; closesty = pt.y; closestIndex = i; closestDistanceSq = distanceSq; } } Proximity2DResult result = new Proximity2DResult(); result._setParams(closestx, closesty, closestIndex, Math.sqrt(closestDistanceSq)); return result; }
Proximity2DResult multiVertexGetNearestVertex(MultiVertexGeometry geom, Point2D inputPoint) { MultiVertexGeometryImpl mpImpl = (MultiVertexGeometryImpl) geom ._getImpl(); AttributeStreamOfDbl position = (AttributeStreamOfDbl) mpImpl .getAttributeStreamRef((Semantics.POSITION)); int pointCount = geom.getPointCount(); int closestIndex = 0; double closestx = 0.0; double closesty = 0.0; double closestDistanceSq = NumberUtils.doubleMax(); for (int i = 0; i < pointCount; i++) { Point2D pt = new Point2D(); position.read(2 * i, pt); double distanceSq = Point2D.sqrDistance(pt, inputPoint); if (distanceSq < closestDistanceSq) { closestx = pt.x; closesty = pt.y; closestIndex = i; closestDistanceSq = distanceSq; } } Proximity2DResult result = new Proximity2DResult(); result._setParams(closestx, closesty, closestIndex, Math.sqrt(closestDistanceSq)); return result; }
return new Polygon(mvg.getDescription()); MultiVertexGeometryImpl mvg_impl = (MultiVertexGeometryImpl) mvg._getImpl(); int N = mvg_impl.getPointCount();
return new Polygon(mvg.getDescription()); MultiVertexGeometryImpl mvg_impl = (MultiVertexGeometryImpl) mvg._getImpl(); int N = mvg_impl.getPointCount();