1 /* 2 * Copyright 2014 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 // EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL 9 // DO NOT USE -- FOR INTERNAL TESTING ONLY 10 11 #ifndef sk_matrix_DEFINED 12 #define sk_matrix_DEFINED 13 14 #include "sk_types.h" 15 16 SK_C_PLUS_PLUS_BEGIN_GUARD 17 18 /** Set the matrix to identity */ 19 void sk_matrix_set_identity(sk_matrix_t*); 20 21 /** Set the matrix to translate by (tx, ty). */ 22 void sk_matrix_set_translate(sk_matrix_t*, float tx, float ty); 23 /** 24 Preconcats the matrix with the specified translation. 25 M' = M * T(dx, dy) 26 */ 27 void sk_matrix_pre_translate(sk_matrix_t*, float tx, float ty); 28 /** 29 Postconcats the matrix with the specified translation. 30 M' = T(dx, dy) * M 31 */ 32 void sk_matrix_post_translate(sk_matrix_t*, float tx, float ty); 33 34 /** Set the matrix to scale by sx and sy. */ 35 void sk_matrix_set_scale(sk_matrix_t*, float sx, float sy); 36 /** 37 Preconcats the matrix with the specified scale. 38 M' = M * S(sx, sy) 39 */ 40 void sk_matrix_pre_scale(sk_matrix_t*, float sx, float sy); 41 /** 42 Postconcats the matrix with the specified scale. 43 M' = S(sx, sy) * M 44 */ 45 void sk_matrix_post_scale(sk_matrix_t*, float sx, float sy); 46 47 SK_C_PLUS_PLUS_END_GUARD 48 49 #endif 50