Mercurial > hg > dmlib
view dmvecmat.h @ 49:033c660c25f5
Restructure module playing, removing 8bit sample mixing (output can still be
8bit, but samples are internally upconverted to 16bit after module loading.)
Also prepare for floating point mixing support.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 01 Oct 2012 02:51:41 +0300 |
parents | 32250b436bca |
children | 07c4f1a7ddc6 |
line wrap: on
line source
/* * DMLib * -- Vector and matrix functions * Programmed and designed by Matti 'ccr' Hamalainen * (C) Copyright 2011 Tecnic Software productions (TNSP) */ #ifndef DMVECMAT_H #define DMVECMAT_H #include "dmlib.h" #ifdef __cplusplus extern "C" { #endif #define DM_MATRIX_SIZE (3) typedef struct { DMFloat x, y, z; } DMVector; typedef struct { DMFloat m[DM_MATRIX_SIZE][DM_MATRIX_SIZE]; } DMMatrix; void dm_vector_copy(DMVector *vd, DMVector *vs); void dm_vector_add(DMVector *vr, const DMVector *v2); void dm_vector_add_r(DMVector *vr, const DMVector *v1, const DMVector *v2); void dm_vector_sub(DMVector *vr, const DMVector *v2); void dm_vector_sub_r(DMVector *vr, const DMVector *v1, const DMVector *v2); DMFloat dm_vector_length(const DMVector *vs); void dm_vector_normalize(DMVector *vs); void dm_vector_scale(DMVector * vec, const DMFloat k); DMFloat dm_vector_dot(const DMVector *v1, const DMVector *v2); void dm_vector_cross(DMVector *vr, const DMVector *v1, const DMVector *v2); void dm_vector_mul_by_mat(DMVector *vd, const DMVector *vs, const DMMatrix *mat); void dm_vector_mul_by_mat_n(DMVector *list, const int nlist, const DMMatrix *mat); void dm_matrix_unit(DMMatrix *mat); void dm_matrix_transpose(DMMatrix *mat1, const DMMatrix *mat2); void dm_matrix_mul(DMMatrix *mat1, const DMMatrix *mat2); void dm_matrix_mul_n(DMMatrix *list, const int nlist, const DMMatrix *mat); void dm_matrix_rot(DMMatrix *mat, const DMFloat sx, const DMFloat sy, const DMFloat sz, const DMFloat cx, const DMFloat cy, const DMFloat cz); void dm_matrix_rot_a(DMMatrix *mat, const DMFloat ax, const DMFloat ay, const DMFloat az); #ifdef __cplusplus } #endif #endif // DMVECMAT_H