Mercurial > touhou
view pytouhou/utils/matrix.pxd @ 524:7f016dfbdfb1
Make vector a struct, allocate it directly on the stack, and thus pass it by copy, which is much less expensive than a python allocation.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Wed, 18 Dec 2013 18:15:40 +0100 |
parents | 6e3b3d5d4691 |
children | db28538cd399 |
line wrap: on
line source
ctypedef struct Matrix: float a, b, c, d float e, f, g, h float i, j, k, l float m, n, o, p cdef Matrix *new_matrix(Matrix *data) nogil cdef Matrix *new_identity() nogil cdef void mul(Matrix *mat1, Matrix *mat2) nogil cdef void flip(Matrix *mat) nogil cdef void scale(Matrix *mat, float x, float y, float z) nogil cdef void scale2d(Matrix *mat, float x, float y) nogil cdef void translate(Matrix *mat, float x, float y, float z) nogil cdef void translate2d(Matrix *mat, float x, float y) nogil cdef void rotate_x(Matrix *mat, float angle) nogil cdef void rotate_y(Matrix *mat, float angle) nogil cdef void rotate_z(Matrix *mat, float angle) nogil