aboutsummaryrefslogtreecommitdiff
path: root/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowMatrix.java
blob: baf76c2700bbc6866ca17049379d7c2a4eca5164 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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;
    }
}