/* * Copyright (c) 2016 Vivid Solutions. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * and Eclipse Distribution License v. 1.0 which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * * http://www.eclipse.org/org/documents/edl-v10.php. */ package org.locationtech.jtstest.function; import org.locationtech.jts.algorithm.MinimumBoundingCircle; import org.locationtech.jts.algorithm.MinimumDiameter; import org.locationtech.jts.densify.Densifier; import org.locationtech.jts.geom.Geometry; import org.locationtech.jts.geom.OctagonalEnvelope; public class ConstructionFunctions { public static Geometry octagonalEnvelope(Geometry g) { return OctagonalEnvelope.octagonalEnvelope(g); } public static Geometry minimumDiameter(Geometry g) { return (new MinimumDiameter(g)).getDiameter(); } public static double minimumDiameterLength(Geometry g) { return (new MinimumDiameter(g)).getDiameter().getLength(); } public static Geometry minimumRectangle(Geometry g) { return (new MinimumDiameter(g)).getMinimumRectangle(); } public static Geometry minimumBoundingCircle(Geometry g) { return (new MinimumBoundingCircle(g)).getCircle(); } public static Geometry maximumDiameter(Geometry g) { return g.getFactory().createLineString((new MinimumBoundingCircle(g)).getExtremalPoints()); } public static Geometry farthestPoints(Geometry g) { return ((new MinimumBoundingCircle(g)).getFarthestPoints()); } public static double maximumDiameterLength(Geometry g) { return 2 * (new MinimumBoundingCircle(g)).getRadius(); } public static Geometry boundary(Geometry g) { return g.getBoundary(); } public static Geometry convexHull(Geometry g) { return g.convexHull(); } public static Geometry centroid(Geometry g) { return g.getCentroid(); } public static Geometry interiorPoint(Geometry g) { return g.getInteriorPoint(); } public static Geometry densify(Geometry g, double distance) { return Densifier.densify(g, distance); } }