private static Iterable<OGCGeometry> flattenCollection(OGCGeometry geometry) { if (geometry == null) { return ImmutableList.of(); } if (!(geometry instanceof OGCConcreteGeometryCollection)) { return ImmutableList.of(geometry); } if (((OGCConcreteGeometryCollection) geometry).numGeometries() == 0) { return ImmutableList.of(); } return () -> new GeometryCollectionIterator(geometry); }
@Override public boolean isEmpty() { return numGeometries() == 0; }
@Override public boolean isEmpty() { return numGeometries() == 0; }
private static Iterable<OGCGeometry> flattenCollection(OGCGeometry geometry) { if (geometry == null) { return ImmutableList.of(); } if (!(geometry instanceof OGCConcreteGeometryCollection)) { return ImmutableList.of(geometry); } if (((OGCConcreteGeometryCollection) geometry).numGeometries() == 0) { return ImmutableList.of(); } return () -> new GeometryCollectionIterator(geometry); }
@Override public int dimension() { int maxD = 0; for (int i = 0, n = numGeometries(); i < n; i++) maxD = Math.max(geometryN(i).dimension(), maxD); return maxD; }
@Override public int dimension() { int maxD = 0; for (int i = 0, n = numGeometries(); i < n; i++) maxD = Math.max(geometryN(i).dimension(), maxD); return maxD; }
@Override public boolean isSimple() { for (int i = 0, n = numGeometries(); i < n; i++) if (!geometryN(i).isSimple()) return false; return true; }
@Override public boolean isSimpleRelaxed() { for (int i = 0, n = numGeometries(); i < n; i++) if (!geometryN(i).isSimpleRelaxed()) return false; return true; }
@Override public OGCGeometry reduceFromMulti() { int n = numGeometries(); if (n == 0) { return this; } if (n == 1) { return geometryN(0).reduceFromMulti(); } return this; }
@Override public OGCGeometry reduceFromMulti() { int n = numGeometries(); if (n == 0) { return this; } if (n == 1) { return geometryN(0).reduceFromMulti(); } return this; }
@Override public boolean isSimple() { for (int i = 0, n = numGeometries(); i < n; i++) if (!geometryN(i).isSimple()) return false; return true; }
@Override public boolean isSimpleRelaxed() { for (int i = 0, n = numGeometries(); i < n; i++) if (!geometryN(i).isSimpleRelaxed()) return false; return true; }
@Override public double MaxZ() { double z = Double.NaN; for (int i = 0, n = numGeometries(); i < n; i++) z = i == 0 ? geometryN(i).MaxZ() : Math.min(geometryN(i).MaxZ(), z); return z; }
@Override public double MinMeasure() { double z = Double.NaN; for (int i = 0, n = numGeometries(); i < n; i++) z = i == 0 ? geometryN(i).MinMeasure() : Math.min(geometryN(i) .MinMeasure(), z); return z; }
@Override public double MaxZ() { double z = Double.NaN; for (int i = 0, n = numGeometries(); i < n; i++) z = i == 0 ? geometryN(i).MaxZ() : Math.min(geometryN(i).MaxZ(), z); return z; }
@Override public double MinZ() { double z = Double.NaN; for (int i = 0, n = numGeometries(); i < n; i++) z = i == 0 ? geometryN(i).MinZ() : Math.min(geometryN(i).MinZ(), z); return z; }
@Override public double MaxMeasure() { double z = Double.NaN; for (int i = 0, n = numGeometries(); i < n; i++) z = i == 0 ? geometryN(i).MaxMeasure() : Math.min(geometryN(i) .MaxMeasure(), z); return z; }
@Override public double MinMeasure() { double z = Double.NaN; for (int i = 0, n = numGeometries(); i < n; i++) z = i == 0 ? geometryN(i).MinMeasure() : Math.min(geometryN(i) .MinMeasure(), z); return z; }
@Override public double MaxMeasure() { double z = Double.NaN; for (int i = 0, n = numGeometries(); i < n; i++) z = i == 0 ? geometryN(i).MaxMeasure() : Math.min(geometryN(i) .MaxMeasure(), z); return z; }
@Override public double MinZ() { double z = Double.NaN; for (int i = 0, n = numGeometries(); i < n; i++) z = i == 0 ? geometryN(i).MinZ() : Math.min(geometryN(i).MinZ(), z); return z; }