package com.revolsys.geometry.test.function;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import com.revolsys.geometry.model.Geometry;
import com.revolsys.geometry.model.Polygon;
import com.revolsys.geometry.model.util.LineStringExtracter;
import com.revolsys.geometry.operation.polygonize.Polygonizer;
public class PolygonizeFunctions {
public static Geometry polygonize(final Geometry g) {
final List lines = LineStringExtracter.getLines(g);
final Polygonizer polygonizer = new Polygonizer();
polygonizer.add(lines);
final List<Polygon> polys = polygonizer.getPolygons();
return g.getGeometryFactory().polygonal(polys);
}
public static Geometry polygonizeAllErrors(final Geometry g) {
final List lines = LineStringExtracter.getLines(g);
final Polygonizer polygonizer = new Polygonizer();
polygonizer.add(lines);
final List errs = new ArrayList();
errs.addAll(polygonizer.getDangles());
errs.addAll(polygonizer.getCutEdges());
errs.addAll(polygonizer.getInvalidRingLines());
return g.getGeometryFactory().buildGeometry(errs);
}
public static Geometry polygonizeCutEdges(final Geometry g) {
final List lines = LineStringExtracter.getLines(g);
final Polygonizer polygonizer = new Polygonizer();
polygonizer.add(lines);
final Collection geom = polygonizer.getCutEdges();
return g.getGeometryFactory().buildGeometry(geom);
}
public static Geometry polygonizeDangles(final Geometry g) {
final List lines = LineStringExtracter.getLines(g);
final Polygonizer polygonizer = new Polygonizer();
polygonizer.add(lines);
final Collection geom = polygonizer.getDangles();
return g.getGeometryFactory().buildGeometry(geom);
}
public static Geometry polygonizeInvalidRingLines(final Geometry g) {
final List lines = LineStringExtracter.getLines(g);
final Polygonizer polygonizer = new Polygonizer();
polygonizer.add(lines);
final Collection geom = polygonizer.getInvalidRingLines();
return g.getGeometryFactory().buildGeometry(geom);
}
}