2014-11-25 03:11:48 +00:00
|
|
|
/*
|
|
|
|
* Copyright 2014 Google Inc.
|
|
|
|
*
|
|
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
|
|
* found in the LICENSE file.
|
|
|
|
*/
|
|
|
|
|
|
|
|
// EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL
|
|
|
|
// DO NOT USE -- FOR INTERNAL TESTING ONLY
|
|
|
|
|
|
|
|
#ifndef sk_matrix_DEFINED
|
|
|
|
#define sk_matrix_DEFINED
|
|
|
|
|
|
|
|
#include "sk_types.h"
|
|
|
|
|
|
|
|
SK_C_PLUS_PLUS_BEGIN_GUARD
|
|
|
|
|
2015-09-01 17:45:09 +00:00
|
|
|
/** Set the matrix to identity */
|
2014-11-25 03:11:48 +00:00
|
|
|
void sk_matrix_set_identity(sk_matrix_t*);
|
|
|
|
|
2015-09-01 17:45:09 +00:00
|
|
|
/** Set the matrix to translate by (tx, ty). */
|
2014-11-25 03:11:48 +00:00
|
|
|
void sk_matrix_set_translate(sk_matrix_t*, float tx, float ty);
|
2015-09-01 17:45:09 +00:00
|
|
|
/**
|
|
|
|
Preconcats the matrix with the specified translation.
|
|
|
|
M' = M * T(dx, dy)
|
|
|
|
*/
|
2014-11-25 03:11:48 +00:00
|
|
|
void sk_matrix_pre_translate(sk_matrix_t*, float tx, float ty);
|
2015-09-01 17:45:09 +00:00
|
|
|
/**
|
|
|
|
Postconcats the matrix with the specified translation.
|
|
|
|
M' = T(dx, dy) * M
|
|
|
|
*/
|
2014-11-25 03:11:48 +00:00
|
|
|
void sk_matrix_post_translate(sk_matrix_t*, float tx, float ty);
|
|
|
|
|
2015-09-01 17:45:09 +00:00
|
|
|
/** Set the matrix to scale by sx and sy. */
|
2014-11-25 03:11:48 +00:00
|
|
|
void sk_matrix_set_scale(sk_matrix_t*, float sx, float sy);
|
2015-09-01 17:45:09 +00:00
|
|
|
/**
|
|
|
|
Preconcats the matrix with the specified scale.
|
|
|
|
M' = M * S(sx, sy)
|
|
|
|
*/
|
2014-11-25 03:11:48 +00:00
|
|
|
void sk_matrix_pre_scale(sk_matrix_t*, float sx, float sy);
|
2015-09-01 17:45:09 +00:00
|
|
|
/**
|
|
|
|
Postconcats the matrix with the specified scale.
|
|
|
|
M' = S(sx, sy) * M
|
|
|
|
*/
|
2014-11-25 03:11:48 +00:00
|
|
|
void sk_matrix_post_scale(sk_matrix_t*, float sx, float sy);
|
|
|
|
|
|
|
|
SK_C_PLUS_PLUS_END_GUARD
|
|
|
|
|
|
|
|
#endif
|