/*
* 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); }
}