Location renderers: add animation option
This commit is contained in:
parent
df67f81156
commit
cfb12dd3f1
@ -64,6 +64,7 @@ public class LocationRenderer extends LayerRenderer {
|
||||
private boolean mLocationIsVisible;
|
||||
|
||||
private boolean mRunAnim;
|
||||
private boolean mAnimate = true;
|
||||
private long mAnimStart;
|
||||
|
||||
private Callback mCallback;
|
||||
@ -88,6 +89,10 @@ public class LocationRenderer extends LayerRenderer {
|
||||
mColors[3] = a;
|
||||
}
|
||||
|
||||
public void setAnimate(boolean animate) {
|
||||
mAnimate = animate;
|
||||
}
|
||||
|
||||
public void setCallback(Callback callback) {
|
||||
mCallback = callback;
|
||||
}
|
||||
@ -122,6 +127,8 @@ public class LocationRenderer extends LayerRenderer {
|
||||
mRunAnim = enable;
|
||||
if (!enable)
|
||||
return;
|
||||
if (!mAnimate)
|
||||
return;
|
||||
|
||||
final Runnable action = new Runnable() {
|
||||
private long lastRun;
|
||||
@ -130,6 +137,8 @@ public class LocationRenderer extends LayerRenderer {
|
||||
public void run() {
|
||||
if (!mRunAnim)
|
||||
return;
|
||||
if (!mAnimate)
|
||||
return;
|
||||
|
||||
long diff = System.currentTimeMillis() - lastRun;
|
||||
mMap.postDelayed(this, Math.min(ANIM_RATE, diff));
|
||||
@ -242,7 +251,7 @@ public class LocationRenderer extends LayerRenderer {
|
||||
v.mvp.multiplyMM(v.viewproj, v.mvp);
|
||||
v.mvp.setAsUniform(hMatrixPosition);
|
||||
|
||||
if (!viewShed) {
|
||||
if (!viewShed && mAnimate) {
|
||||
float phase = Math.abs(animPhase() - 0.5f) * 2;
|
||||
//phase = Interpolation.fade.apply(phase);
|
||||
phase = Interpolation.swing.apply(phase);
|
||||
|
@ -96,6 +96,7 @@ public class LocationTextureRenderer extends BucketRenderer {
|
||||
private final Point screenPoint = new Point();
|
||||
private final Box boundingBox = new Box();
|
||||
private boolean runAnim;
|
||||
private boolean animate = true;
|
||||
private long animStart;
|
||||
private boolean update;
|
||||
private float bearing;
|
||||
@ -115,6 +116,10 @@ public class LocationTextureRenderer extends BucketRenderer {
|
||||
this.accuracyColor = color;
|
||||
}
|
||||
|
||||
public void setAnimate(boolean animate) {
|
||||
this.animate = animate;
|
||||
}
|
||||
|
||||
public void setBillboard(boolean billboard) {
|
||||
this.billboard = billboard;
|
||||
}
|
||||
@ -147,6 +152,8 @@ public class LocationTextureRenderer extends BucketRenderer {
|
||||
runAnim = enable;
|
||||
if (!enable)
|
||||
return;
|
||||
if (!animate)
|
||||
return;
|
||||
|
||||
final Runnable action = new Runnable() {
|
||||
private long lastRun;
|
||||
@ -155,6 +162,8 @@ public class LocationTextureRenderer extends BucketRenderer {
|
||||
public void run() {
|
||||
if (!runAnim)
|
||||
return;
|
||||
if (!animate)
|
||||
return;
|
||||
|
||||
long diff = System.currentTimeMillis() - lastRun;
|
||||
map.postDelayed(this, Math.min(ANIM_RATE, diff));
|
||||
@ -311,7 +320,7 @@ public class LocationTextureRenderer extends BucketRenderer {
|
||||
v.mvp.multiplyMM(v.viewproj, v.mvp);
|
||||
v.mvp.setAsUniform(hMatrixPosition);
|
||||
|
||||
if (!viewShed) {
|
||||
if (!viewShed && animate) {
|
||||
float phase = Math.abs(animPhase() - 0.5f) * 2;
|
||||
//phase = Interpolation.fade.apply(phase);
|
||||
phase = Interpolation.swing.apply(phase);
|
||||
|
Loading…
x
Reference in New Issue
Block a user