Home | History | Annotate | Download | only in c
      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