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