Mercurial > hg > dmlib
view dmvecmat.h @ 45:b30430da2815
Rename mixing template.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 01 Oct 2012 01:07:19 +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