GeometryBuffer: add removeLastPoint (#702)
This commit is contained in:
parent
4e37ae26c9
commit
fb8e6dab20
@ -259,7 +259,7 @@ public class GeoJsonTileDecoder implements ITileDecoder {
|
||||
|
||||
ring++;
|
||||
parseCoordSequence(jp);
|
||||
removeLastPoint();
|
||||
mMapElement.removeLastPoint();
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -268,11 +268,6 @@ public class GeoJsonTileDecoder implements ITileDecoder {
|
||||
}
|
||||
}
|
||||
|
||||
private void removeLastPoint() {
|
||||
mMapElement.pointNextPos -= 2;
|
||||
mMapElement.index[mMapElement.indexCurrentPos] -= 2;
|
||||
}
|
||||
|
||||
private void parseLineString(JsonParser jp)
|
||||
throws JsonParseException, IOException {
|
||||
mMapElement.startLine();
|
||||
|
@ -127,15 +127,10 @@ public class OverpassTileDecoder implements ITileDecoder {
|
||||
|
||||
//ring++;
|
||||
parseCoordSequence(element);
|
||||
removeLastPoint();
|
||||
mMapElement.removeLastPoint();
|
||||
//}
|
||||
}
|
||||
|
||||
private void removeLastPoint() {
|
||||
mMapElement.pointNextPos -= 2;
|
||||
mMapElement.index[mMapElement.indexCurrentPos] -= 2;
|
||||
}
|
||||
|
||||
private void parseLine(OsmWay element) {
|
||||
mMapElement.startLine();
|
||||
parseCoordSequence(element);
|
||||
|
@ -256,7 +256,7 @@ public class TileDecoder implements ITileDecoder {
|
||||
|
||||
ring++;
|
||||
parseCoordSequence(jp);
|
||||
removeLastPoint();
|
||||
mMapElement.removeLastPoint();
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -265,11 +265,6 @@ public class TileDecoder implements ITileDecoder {
|
||||
}
|
||||
}
|
||||
|
||||
private void removeLastPoint() {
|
||||
mMapElement.pointNextPos -= 2;
|
||||
mMapElement.index[mMapElement.indexCurrentPos] -= 2;
|
||||
}
|
||||
|
||||
private void parseLineString(JsonParser jp) throws IOException {
|
||||
mMapElement.startLine();
|
||||
parseCoordSequence(jp);
|
||||
|
35
vtm-tests/test/org/oscim/core/GeometryBufferTest.java
Normal file
35
vtm-tests/test/org/oscim/core/GeometryBufferTest.java
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright 2019 Gustl22
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify it under the
|
||||
* terms of the GNU Lesser General Public License as published by the Free Software
|
||||
* Foundation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License along with
|
||||
* this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.oscim.core;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
public class GeometryBufferTest {
|
||||
|
||||
@Test
|
||||
public void removeLastPointPolyTest() {
|
||||
GeometryBuffer buffer = new GeometryBuffer(4, 1);
|
||||
buffer.startPolygon();
|
||||
buffer.addPoint(0, 0);
|
||||
buffer.addPoint(10, 0);
|
||||
buffer.addPoint(10, 10);
|
||||
buffer.addPoint(0, 10);
|
||||
|
||||
buffer.removeLastPoint();
|
||||
System.out.println(buffer.toString());
|
||||
Assert.assertEquals(buffer.getNumPoints(), 3);
|
||||
}
|
||||
}
|
@ -468,6 +468,16 @@ public class GeometryBuffer {
|
||||
return GeometryUtils.isClockwise(points, index[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the last point.
|
||||
*/
|
||||
public void removeLastPoint() {
|
||||
if (!isTris()) {
|
||||
pointNextPos -= 2;
|
||||
index[indexCurrentPos] -= 2;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the order of points for lines and polygons.
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user