TextRenderer: cleanup, use label in loop
This commit is contained in:
parent
620ce368b5
commit
0cf7364c78
@ -35,10 +35,10 @@ import org.oscim.map.Viewport;
|
|||||||
import org.oscim.renderer.ElementRenderer;
|
import org.oscim.renderer.ElementRenderer;
|
||||||
import org.oscim.renderer.GLState;
|
import org.oscim.renderer.GLState;
|
||||||
import org.oscim.renderer.MapRenderer.Matrices;
|
import org.oscim.renderer.MapRenderer.Matrices;
|
||||||
import org.oscim.renderer.elements.RenderElement;
|
|
||||||
import org.oscim.renderer.elements.ElementLayers;
|
import org.oscim.renderer.elements.ElementLayers;
|
||||||
import org.oscim.renderer.elements.LineLayer;
|
import org.oscim.renderer.elements.LineLayer;
|
||||||
import org.oscim.renderer.elements.PolygonLayer;
|
import org.oscim.renderer.elements.PolygonLayer;
|
||||||
|
import org.oscim.renderer.elements.RenderElement;
|
||||||
import org.oscim.renderer.elements.SymbolItem;
|
import org.oscim.renderer.elements.SymbolItem;
|
||||||
import org.oscim.renderer.elements.SymbolLayer;
|
import org.oscim.renderer.elements.SymbolLayer;
|
||||||
import org.oscim.renderer.elements.TextItem;
|
import org.oscim.renderer.elements.TextItem;
|
||||||
@ -49,7 +49,6 @@ import org.oscim.tiling.TileRenderer;
|
|||||||
import org.oscim.tiling.TileSet;
|
import org.oscim.tiling.TileSet;
|
||||||
import org.oscim.utils.FastMath;
|
import org.oscim.utils.FastMath;
|
||||||
import org.oscim.utils.OBB2D;
|
import org.oscim.utils.OBB2D;
|
||||||
import org.oscim.utils.pool.LList;
|
|
||||||
import org.oscim.utils.pool.Pool;
|
import org.oscim.utils.pool.Pool;
|
||||||
|
|
||||||
class TextRenderer extends ElementRenderer {
|
class TextRenderer extends ElementRenderer {
|
||||||
@ -122,11 +121,6 @@ class TextRenderer extends ElementRenderer {
|
|||||||
|
|
||||||
//private final HashMap<MapTile, LabelTile> mActiveTiles;
|
//private final HashMap<MapTile, LabelTile> mActiveTiles;
|
||||||
|
|
||||||
class LabelTile {
|
|
||||||
Tile tile;
|
|
||||||
LList<Label> labels;
|
|
||||||
}
|
|
||||||
|
|
||||||
private float mSquareRadius;
|
private float mSquareRadius;
|
||||||
private int mRelabelCnt;
|
private int mRelabelCnt;
|
||||||
private final TileRenderer mTileLayer;
|
private final TileRenderer mTileLayer;
|
||||||
@ -476,7 +470,7 @@ class TextRenderer extends ElementRenderer {
|
|||||||
float dy = (float) (t.tileY * Tile.SIZE - tileY);
|
float dy = (float) (t.tileY * Tile.SIZE - tileY);
|
||||||
dx = flipLongitude(dx, maxx);
|
dx = flipLongitude(dx, maxx);
|
||||||
|
|
||||||
for (TextItem ti = t.labels; ti != null; ti = ti.next) {
|
O: for (TextItem ti = t.labels; ti != null; ti = ti.next) {
|
||||||
if (!ti.text.caption)
|
if (!ti.text.caption)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -499,28 +493,22 @@ class TextRenderer extends ElementRenderer {
|
|||||||
l.text.fontHeight + MIN_CAPTION_DIST,
|
l.text.fontHeight + MIN_CAPTION_DIST,
|
||||||
l.text.dy);
|
l.text.dy);
|
||||||
|
|
||||||
boolean overlaps = false;
|
|
||||||
|
|
||||||
for (Label lp = mLabels; lp != null;) {
|
for (Label lp = mLabels; lp != null;) {
|
||||||
if (l.bbox.overlaps(lp.bbox)) {
|
if (l.bbox.overlaps(lp.bbox)) {
|
||||||
if (l.text.priority < lp.text.priority) {
|
if (l.text.priority < lp.text.priority) {
|
||||||
lp = removeLabel(lp);
|
lp = removeLabel(lp);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
continue O;
|
||||||
overlaps = true;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
lp = (Label) lp.next;
|
lp = (Label) lp.next;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!overlaps) {
|
addLabel(l);
|
||||||
addLabel(l);
|
l.item = TextItem.copy(ti);
|
||||||
l.item = TextItem.copy(ti);
|
l.tile = t;
|
||||||
l.tile = t;
|
l.active = mRelabelCnt;
|
||||||
l.active = mRelabelCnt;
|
l = null;
|
||||||
l = null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user