package com.revolsys.geometry.test.old.junit;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;
import com.revolsys.geometry.io.GeometryReader;
import com.revolsys.geometry.io.GeometryReaderFactory;
import com.revolsys.geometry.model.Geometry;
import com.revolsys.geometry.model.GeometryFactory;
import com.revolsys.geometry.wkb.ParseException;
import com.revolsys.io.IoFactory;
public class GeometryUtils {
static GeometryFactory geometryFactory = GeometryFactory.DEFAULT_3D;
public static boolean isEqual(final Geometry a, final Geometry b) {
final Geometry a2 = normalize(a);
final Geometry b2 = normalize(b);
return a2.equals(2, b2);
}
public static Geometry normalize(final Geometry g) {
final Geometry g2 = g.normalize();
return g2;
}
public static Geometry readWKT(final String inputWKT) throws ParseException {
return geometryFactory.geometry(inputWKT);
}
public static List<Geometry> readWKT(final String[] inputWKT) throws ParseException {
final List<Geometry> geometries = new ArrayList<>();
for (final String element : inputWKT) {
geometries.add(geometryFactory.geometry(element));
}
return geometries;
}
public static List<Geometry> readWKTFile(final GeometryFactory geometryFactory,
final Reader reader) throws IOException, ParseException {
final GeometryReaderFactory readerFactory = IoFactory
.factoryByFileExtension(GeometryReaderFactory.class, "wkt");
try (
GeometryReader geometryReader = readerFactory.newGeometryReader(reader)) {
geometryReader.setProperty("geometryFactory", geometryFactory);
return geometryReader.toList();
}
}
public static List<Geometry> readWKTFile(final GeometryFactory geometryFactory,
final String filename) throws IOException, ParseException {
try (
FileReader reader = new FileReader(filename)) {
return readWKTFile(geometryFactory, reader);
}
}
public static List<Geometry> readWKTFile(final Reader reader) throws IOException, ParseException {
final GeometryReaderFactory readerFactory = IoFactory
.factoryByFileExtension(GeometryReaderFactory.class, "wkt");
try (
GeometryReader geometryReader = readerFactory.newGeometryReader(reader)) {
return geometryReader.toList();
}
}
public static List<Geometry> readWKTFile(final String filename)
throws IOException, ParseException {
try (
FileReader reader = new FileReader(filename)) {
return readWKTFile(reader);
}
}
}