- Add MarkerRendererFactory interface for custom MarkerRenderer
- Enhance MarkerLayer and ItemizedLayer constructors - Allow setting level to RenderBucket
This commit is contained in:
parent
67357fe2f0
commit
1fa9f133bd
@ -3,6 +3,7 @@
|
||||
*
|
||||
* Copyright 2013 Hannes Janetzek
|
||||
* Copyright 2016 devemux86
|
||||
* Copyright 2016 Stephan Leuschner
|
||||
*
|
||||
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
|
||||
*
|
||||
@ -57,6 +58,21 @@ public class ItemizedLayer<Item extends MarkerItem> extends MarkerLayer<Item>
|
||||
populate();
|
||||
}
|
||||
|
||||
public ItemizedLayer(Map map, MarkerRendererFactory markerRendererFactory) {
|
||||
this(map, new ArrayList<Item>(), markerRendererFactory, null);
|
||||
}
|
||||
|
||||
public ItemizedLayer(Map map, List<Item> list,
|
||||
MarkerRendererFactory markerRendererFactory,
|
||||
OnItemGestureListener<Item> listener) {
|
||||
|
||||
super(map, markerRendererFactory);
|
||||
|
||||
mItemList = list;
|
||||
mOnItemGestureListener = listener;
|
||||
populate();
|
||||
}
|
||||
|
||||
public void setOnItemGestureListener(OnItemGestureListener<Item> listener) {
|
||||
mOnItemGestureListener = listener;
|
||||
}
|
||||
|
@ -5,6 +5,7 @@
|
||||
* Copyright 2012 Fred Eisele
|
||||
*
|
||||
* Copyright 2013 Hannes Janetzek
|
||||
* Copyright 2016 Stephan Leuschner
|
||||
*
|
||||
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
|
||||
*
|
||||
@ -56,6 +57,13 @@ public abstract class MarkerLayer<Item extends MarkerItem> extends Layer {
|
||||
mRenderer = mMarkerRenderer;
|
||||
}
|
||||
|
||||
public MarkerLayer(Map map, MarkerRendererFactory markerRendererFactory) {
|
||||
super(map);
|
||||
|
||||
mMarkerRenderer = markerRendererFactory.create(this);
|
||||
mRenderer = mMarkerRenderer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility method to perform all processing on a new ItemizedOverlay.
|
||||
* Subclasses provide Items through the createItem(int) method. The subclass
|
||||
|
23
vtm/src/org/oscim/layers/marker/MarkerRendererFactory.java
Normal file
23
vtm/src/org/oscim/layers/marker/MarkerRendererFactory.java
Normal file
@ -0,0 +1,23 @@
|
||||
/*
|
||||
* Copyright 2016 Stephan Leuschner
|
||||
*
|
||||
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
|
||||
*
|
||||
* 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.layers.marker;
|
||||
|
||||
public interface MarkerRendererFactory {
|
||||
|
||||
MarkerRenderer create(MarkerLayer markerLayer);
|
||||
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright 2012, 2013 Hannes Janetzek
|
||||
* Copyright 2016 Stephan Leuschner
|
||||
*
|
||||
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
|
||||
*
|
||||
@ -100,6 +101,10 @@ public abstract class RenderBucket extends Inlist<RenderBucket> {
|
||||
return indiceOffset;
|
||||
}
|
||||
|
||||
public void setLevel(int level) {
|
||||
this.level = level;
|
||||
}
|
||||
|
||||
public void setVertexOffset(int offset) {
|
||||
this.vertexOffset = offset;
|
||||
}
|
||||
@ -111,7 +116,7 @@ public abstract class RenderBucket extends Inlist<RenderBucket> {
|
||||
protected void compile(ShortBuffer vboData, ShortBuffer iboData) {
|
||||
compileVertexItems(vboData);
|
||||
if (iboData != null)
|
||||
compileIndiceItems(iboData);
|
||||
compileIndicesItems(iboData);
|
||||
}
|
||||
|
||||
protected void compileVertexItems(ShortBuffer vboData) {
|
||||
@ -120,7 +125,7 @@ public abstract class RenderBucket extends Inlist<RenderBucket> {
|
||||
vertexItems.compile(vboData);
|
||||
}
|
||||
|
||||
protected void compileIndiceItems(ShortBuffer iboData) {
|
||||
protected void compileIndicesItems(ShortBuffer iboData) {
|
||||
/* keep offset of layer data in vbo */
|
||||
if (indiceItems == null || indiceItems.empty())
|
||||
return;
|
||||
|
Loading…
x
Reference in New Issue
Block a user