Example usage for com.google.common.geometry S2Polyline vertex

List of usage examples for com.google.common.geometry S2Polyline vertex

Introduction

In this page you can find the example usage for com.google.common.geometry S2Polyline vertex.

Prototype

public S2Point vertex(int k) 

Source Link

Usage

From source file:com.bc.geometry.s2.S2Util.java

public static double[][] toXYZArray(S2Polyline polyline) {
    final int numVertices = polyline.numVertices();
    final double[][] xyzArray = new double[numVertices][3];
    for (int i = 0; i < numVertices; i++) {
        final double[] vector = new double[3];
        final S2Point s2Point = polyline.vertex(i);
        vector[0] = s2Point.getX();
        vector[1] = s2Point.getY();
        vector[2] = s2Point.getZ();

        xyzArray[i] = vector;//from   w  w w.ja va 2s  .  c  om
    }

    return xyzArray;
}

From source file:com.bc.geometry.s2.S2WKTWriter.java

private static String writeLinestringWKT(S2Polyline geometry) {
    final int numVertices = geometry.numVertices();
    if (numVertices < 2) {
        throw new IllegalArgumentException("Linestring contains less that 2 vertices.");
    }/*from  w  w  w .j  a va2  s  .  c o  m*/

    final StringBuilder builder = new StringBuilder();
    builder.append("LINESTRING(");
    for (int i = 0; i < numVertices; i++) {
        appendWktPoint(geometry.vertex(i), builder);
        if (i != numVertices - 1) {
            builder.append(",");
        }
    }
    builder.append(")");
    return builder.toString();
}

From source file:com.bc.fiduceo.geometry.s2.BcS2TimeAxis.java

@Override
public TimeInterval getIntersectionTime(Polygon polygon) {
    final S2Polygon inner = (S2Polygon) polygon.getInner();
    List<S2Polyline> s2Polylines = inner.intersectWithPolyLine(polyline);
    if (s2Polylines.isEmpty()) {
        return null;
    }/*  ww w .  j a v a 2  s  .  c o m*/

    if (s2Polylines.size() > 1) {
        throw new RuntimeException("More than one intersection, not implemented yet!");
    }

    final S2Polyline intersection = s2Polylines.get(0);

    final S2Point intersectionStartPoint = intersection.vertex(0);
    final long offsetTime = calculateLineDuration(intersectionStartPoint);

    final S2Point intersectionEndPoint = intersection.vertex(intersection.numVertices() - 1);
    final long totalTime = calculateLineDuration(intersectionEndPoint);

    final long duration = totalTime - offsetTime;

    final long startMillis = startTime.getTime() + offsetTime;
    return new TimeInterval(TimeUtils.create(startMillis), TimeUtils.create(startMillis + duration));
}

From source file:com.bc.fiduceo.geometry.s2.BcS2MultiLineString.java

@Override
public Point[] getCoordinates() {
    List<Point> pointList = new ArrayList<>();
    for (S2Polyline s2Polyline : s2PolylineList) {
        int i = s2Polyline.numVertices();
        for (int j = 0; j < i; j++) {
            pointList.add(BcS2Point.createFrom(s2Polyline.vertex(j)));
        }//from  www.j av  a  2s.c om
    }
    return pointList.toArray(new Point[pointList.size()]);
}

From source file:com.bc.fiduceo.geometry.s2.BcS2MultiLineString.java

@Override
public boolean isValid() {
    boolean valid = false;
    for (S2Polyline s2Polyline : s2PolylineList) {
        int numVertices = s2Polyline.numVertices();
        ArrayList<S2Point> s2PointArrayList = new ArrayList<>();
        for (int i = 0; i < numVertices; i++) {
            s2PointArrayList.add(s2Polyline.vertex(i));
        }//from  www . ja  v  a  2s  . com
        valid = s2Polyline.isValid(s2PointArrayList);
    }
    return valid;
}

From source file:com.bc.fiduceo.geometry.s2.BcS2MultiLineString.java

@Override
public boolean isEmpty() {
    boolean isInitialPointsZero = false;

    if (s2PolylineList.isEmpty()) {
        return true;
    }/*from w  ww  . j  ava  2  s .c o m*/

    for (S2Polyline s2Polyline : s2PolylineList) {
        if (s2Polyline == null) {
            return true;
        }
        int numVertices = s2Polyline.numVertices();
        if (numVertices > 0) {
            for (int i = 0; i < numVertices; i++) {
                S2Point vertex = s2Polyline.vertex(i);
                isInitialPointsZero = vertex.getX() == 0 && vertex.getY() == 0 && vertex.getZ() == 0;
                if (!isInitialPointsZero) {
                    return false;
                }
            }
        }
    }
    return isInitialPointsZero;
}