diff --git a/resources/rendertheme.xsd b/resources/rendertheme.xsd index c01e09e9..e1863fd5 100644 --- a/resources/rendertheme.xsd +++ b/resources/rendertheme.xsd @@ -98,6 +98,7 @@ + diff --git a/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java b/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java index 3e81cc86..7debfb4f 100644 --- a/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java +++ b/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java @@ -285,7 +285,7 @@ public class VectorTileLoader extends TileLoader implements RenderStyle.Callback int nLevel = mCurBucket + level; - if (USE_MESH_POLY) { + if (USE_MESH_POLY || area.mesh) { MeshBucket mb = mBuckets.getMeshBucket(nLevel); mb.area = area; mb.addMesh(mElement); diff --git a/vtm/src/org/oscim/theme/XmlThemeBuilder.java b/vtm/src/org/oscim/theme/XmlThemeBuilder.java index 05fee70e..95b36b01 100644 --- a/vtm/src/org/oscim/theme/XmlThemeBuilder.java +++ b/vtm/src/org/oscim/theme/XmlThemeBuilder.java @@ -525,6 +525,9 @@ public class XmlThemeBuilder extends DefaultHandler { else if ("blend-fill".equals(name)) b.blendColor(value); + else if ("mesh".equals(name)) + b.mesh(Boolean.parseBoolean(value)); + else logUnknownAttribute(elementName, name, value, i); } diff --git a/vtm/src/org/oscim/theme/styles/AreaStyle.java b/vtm/src/org/oscim/theme/styles/AreaStyle.java index d7025c9f..684a1715 100644 --- a/vtm/src/org/oscim/theme/styles/AreaStyle.java +++ b/vtm/src/org/oscim/theme/styles/AreaStyle.java @@ -1,5 +1,6 @@ /* * Copyright 2014 Hannes Janetzek + * Copyright 2016 devemux86 * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -55,6 +56,9 @@ public class AreaStyle extends RenderStyle { public final int strokeColor; public final float strokeWidth; + /** Tessellation */ + public final boolean mesh; + public AreaStyle(int color) { this(0, color); } @@ -69,6 +73,7 @@ public class AreaStyle extends RenderStyle { this.texture = null; this.strokeColor = color; this.strokeWidth = 1; + this.mesh = false; } public AreaStyle(AreaBuilder b) { @@ -79,9 +84,9 @@ public class AreaStyle extends RenderStyle { this.blendScale = b.blendScale; this.color = b.fillColor; this.texture = b.texture; - this.strokeColor = b.strokeColor; this.strokeWidth = b.strokeWidth; + this.mesh = b.mesh; } @Override @@ -136,6 +141,7 @@ public class AreaStyle extends RenderStyle { public int fadeScale; public int blendColor; public int blendScale; + public boolean mesh; public TextureItem texture; @@ -155,6 +161,7 @@ public class AreaStyle extends RenderStyle { this.texture = area.texture; this.strokeColor = area.strokeColor; this.strokeWidth = area.strokeWidth; + this.mesh = area.mesh; return self(); } @@ -184,6 +191,11 @@ public class AreaStyle extends RenderStyle { return self(); } + public T mesh(boolean mesh) { + this.mesh = mesh; + return self(); + } + public T reset() { fillColor = Color.WHITE; strokeColor = Color.BLACK; @@ -193,6 +205,7 @@ public class AreaStyle extends RenderStyle { blendColor = Color.TRANSPARENT; style = null; texture = null; + mesh = false; return self(); }