- 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 2013 Hannes Janetzek
|
||||||
* Copyright 2016 devemux86
|
* Copyright 2016 devemux86
|
||||||
|
* Copyright 2016 Stephan Leuschner
|
||||||
*
|
*
|
||||||
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
|
* 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();
|
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) {
|
public void setOnItemGestureListener(OnItemGestureListener<Item> listener) {
|
||||||
mOnItemGestureListener = listener;
|
mOnItemGestureListener = listener;
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
* Copyright 2012 Fred Eisele
|
* Copyright 2012 Fred Eisele
|
||||||
*
|
*
|
||||||
* Copyright 2013 Hannes Janetzek
|
* Copyright 2013 Hannes Janetzek
|
||||||
|
* Copyright 2016 Stephan Leuschner
|
||||||
*
|
*
|
||||||
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
|
* 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;
|
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.
|
* Utility method to perform all processing on a new ItemizedOverlay.
|
||||||
* Subclasses provide Items through the createItem(int) method. The subclass
|
* 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 2012, 2013 Hannes Janetzek
|
||||||
|
* Copyright 2016 Stephan Leuschner
|
||||||
*
|
*
|
||||||
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
|
* 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;
|
return indiceOffset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setLevel(int level) {
|
||||||
|
this.level = level;
|
||||||
|
}
|
||||||
|
|
||||||
public void setVertexOffset(int offset) {
|
public void setVertexOffset(int offset) {
|
||||||
this.vertexOffset = offset;
|
this.vertexOffset = offset;
|
||||||
}
|
}
|
||||||
@ -111,7 +116,7 @@ public abstract class RenderBucket extends Inlist<RenderBucket> {
|
|||||||
protected void compile(ShortBuffer vboData, ShortBuffer iboData) {
|
protected void compile(ShortBuffer vboData, ShortBuffer iboData) {
|
||||||
compileVertexItems(vboData);
|
compileVertexItems(vboData);
|
||||||
if (iboData != null)
|
if (iboData != null)
|
||||||
compileIndiceItems(iboData);
|
compileIndicesItems(iboData);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void compileVertexItems(ShortBuffer vboData) {
|
protected void compileVertexItems(ShortBuffer vboData) {
|
||||||
@ -120,7 +125,7 @@ public abstract class RenderBucket extends Inlist<RenderBucket> {
|
|||||||
vertexItems.compile(vboData);
|
vertexItems.compile(vboData);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void compileIndiceItems(ShortBuffer iboData) {
|
protected void compileIndicesItems(ShortBuffer iboData) {
|
||||||
/* keep offset of layer data in vbo */
|
/* keep offset of layer data in vbo */
|
||||||
if (indiceItems == null || indiceItems.empty())
|
if (indiceItems == null || indiceItems.empty())
|
||||||
return;
|
return;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user