8 int odd(int x) { return ((x) & 1); }
10 #define mateq(m1, m2) memcpy(m1, m2, sizeof(matriz_data))
13 Matriz::matriz_data const Matriz::MATIDEN = { {1, 0}, {0, 1}};
22 void Matriz::rota(int code)
26 float const cs = (odd(code)) ? 0 : (1 - code);
27 float const sn = (odd(code)) ? (2 - code) : 0;
28 r[0][0] = cs; r[0][1] = sn;
29 r[1][0] = -r[0][1]; r[1][1] = r[0][0];
34 void Matriz::escala(float x, float y)
38 s[0][0] = x; s[1][1] = y;
43 void Matriz::matmat(matriz_data & a)
46 for (int i = 0; i < 2; ++i) {
47 c[0][i] = a[0][0] * m_[0][i] + a[0][1] * m_[1][i];
48 c[1][i] = a[1][0] * m_[0][i] + a[1][1] * m_[1][i];
54 void Matriz::transf(float xp, float yp, float & x, float & y)
56 x = m_[0][0] * xp + m_[0][1] * yp;
57 y = m_[1][0] * xp + m_[1][1] * yp;