blob: baf76c2700bbc6866ca17049379d7c2a4eca5164 [file] [log] [blame]
package com.xtremelabs.robolectric.shadows;
import android.graphics.Matrix;
import com.xtremelabs.robolectric.internal.Implementation;
import com.xtremelabs.robolectric.internal.Implements;
import static com.xtremelabs.robolectric.Robolectric.shadowOf;
@SuppressWarnings({"UnusedDeclaration"})
@Implements(Matrix.class)
public class ShadowMatrix {
private float scaleX = 1;
private float transX;
private float scaleY = 1;
private float transY;
// scaleX=0, skewX=1, transX=2
// skewY=3, scaleY=4, transY=5
// persp0=6, persp1=7, persp2=8
// identity: Matrix{[1.0, 0.0, 0.0][0.0, 1.0, 0.0][0.0, 0.0, 1.0]}
// drag down: Matrix{[1.0, 0.0, -1.3872986][0.0, 1.0, 0.37722778][0.0, 0.0, 1.0]}
public void __constructor__(Matrix src) {
set(src);
}
@Implementation
public void set(Matrix src) {
transX = shadowOf(src).transX;
scaleX = shadowOf(src).scaleX;
transY = shadowOf(src).transY;
scaleY = shadowOf(src).scaleY;
}
@Implementation
public void setTranslate(float dx, float dy) {
transX = dx;
transY = dy;
}
@Implementation
public void postTranslate(float dx, float dy) {
transX += dx;
transY += dy;
}
public float getTransX() {
return transX;
}
public float getTransY() {
return transY;
}
@Implementation
public boolean postScale(float sx, float sy, float px, float py) {
scaleX *= sx;
scaleY *= sy;
return true;
}
public float getScaleX() {
return scaleX;
}
public float getScaleY() {
return scaleY;
}
}