1/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.support.transition;
18
19import android.graphics.Matrix;
20import android.graphics.RectF;
21
22class MatrixUtils {
23
24    static final Matrix IDENTITY_MATRIX = new Matrix() {
25
26        void oops() {
27            throw new IllegalStateException("Matrix can not be modified");
28        }
29
30        @Override
31        public void set(Matrix src) {
32            oops();
33        }
34
35        @Override
36        public void reset() {
37            oops();
38        }
39
40        @Override
41        public void setTranslate(float dx, float dy) {
42            oops();
43        }
44
45        @Override
46        public void setScale(float sx, float sy, float px, float py) {
47            oops();
48        }
49
50        @Override
51        public void setScale(float sx, float sy) {
52            oops();
53        }
54
55        @Override
56        public void setRotate(float degrees, float px, float py) {
57            oops();
58        }
59
60        @Override
61        public void setRotate(float degrees) {
62            oops();
63        }
64
65        @Override
66        public void setSinCos(float sinValue, float cosValue, float px, float py) {
67            oops();
68        }
69
70        @Override
71        public void setSinCos(float sinValue, float cosValue) {
72            oops();
73        }
74
75        @Override
76        public void setSkew(float kx, float ky, float px, float py) {
77            oops();
78        }
79
80        @Override
81        public void setSkew(float kx, float ky) {
82            oops();
83        }
84
85        @Override
86        public boolean setConcat(Matrix a, Matrix b) {
87            oops();
88            return false;
89        }
90
91        @Override
92        public boolean preTranslate(float dx, float dy) {
93            oops();
94            return false;
95        }
96
97        @Override
98        public boolean preScale(float sx, float sy, float px, float py) {
99            oops();
100            return false;
101        }
102
103        @Override
104        public boolean preScale(float sx, float sy) {
105            oops();
106            return false;
107        }
108
109        @Override
110        public boolean preRotate(float degrees, float px, float py) {
111            oops();
112            return false;
113        }
114
115        @Override
116        public boolean preRotate(float degrees) {
117            oops();
118            return false;
119        }
120
121        @Override
122        public boolean preSkew(float kx, float ky, float px, float py) {
123            oops();
124            return false;
125        }
126
127        @Override
128        public boolean preSkew(float kx, float ky) {
129            oops();
130            return false;
131        }
132
133        @Override
134        public boolean preConcat(Matrix other) {
135            oops();
136            return false;
137        }
138
139        @Override
140        public boolean postTranslate(float dx, float dy) {
141            oops();
142            return false;
143        }
144
145        @Override
146        public boolean postScale(float sx, float sy, float px, float py) {
147            oops();
148            return false;
149        }
150
151        @Override
152        public boolean postScale(float sx, float sy) {
153            oops();
154            return false;
155        }
156
157        @Override
158        public boolean postRotate(float degrees, float px, float py) {
159            oops();
160            return false;
161        }
162
163        @Override
164        public boolean postRotate(float degrees) {
165            oops();
166            return false;
167        }
168
169        @Override
170        public boolean postSkew(float kx, float ky, float px, float py) {
171            oops();
172            return false;
173        }
174
175        @Override
176        public boolean postSkew(float kx, float ky) {
177            oops();
178            return false;
179        }
180
181        @Override
182        public boolean postConcat(Matrix other) {
183            oops();
184            return false;
185        }
186
187        @Override
188        public boolean setRectToRect(RectF src, RectF dst, ScaleToFit stf) {
189            oops();
190            return false;
191        }
192
193        @Override
194        public boolean setPolyToPoly(float[] src, int srcIndex, float[] dst, int dstIndex,
195                int pointCount) {
196            oops();
197            return false;
198        }
199
200        @Override
201        public void setValues(float[] values) {
202            oops();
203        }
204
205    };
206
207}
208