## goat3d

### view libs/vmath/basis_c.c @ 29:3d669155709d

find changesets by author, revision,
files, or words in the commit message

- switched the unix build to use the internal vmath/anim as well
- fixed a memory corruption issue which was caused by including the system-wide
installed version of the anim.h header file
- started the ass2goat assimp->goat3d converter

author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|

date | Sun, 29 Sep 2013 21:53:03 +0300 |

parents | |

children |

line source

1 /*

2 libvmath - a vector math library

3 Copyright (C) 2004-2011 John Tsiombikas <nuclear@member.fsf.org>

5 This program is free software: you can redistribute it and/or modify

6 it under the terms of the GNU Lesser General Public License as published

7 by the Free Software Foundation, either version 3 of the License, or

8 (at your option) any later version.

10 This program is distributed in the hope that it will be useful,

11 but WITHOUT ANY WARRANTY; without even the implied warranty of

12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

13 GNU Lesser General Public License for more details.

15 You should have received a copy of the GNU Lesser General Public License

16 along with this program. If not, see <http://www.gnu.org/licenses/>.

17 */

19 #include "basis.h"

20 #include "matrix.h"

22 void basis_matrix(mat4_t res, vec3_t i, vec3_t j, vec3_t k)

23 {

24 m4_identity(res);

25 m4_set_column(res, v4_cons(i.x, i.y, i.z, 1.0), 0);

26 m4_set_column(res, v4_cons(j.x, j.y, j.z, 1.0), 1);

27 m4_set_column(res, v4_cons(k.x, k.y, k.z, 1.0), 2);

28 }

30 void basis_matrix_dir(mat4_t res, vec3_t dir)

31 {

32 vec3_t k = v3_normalize(dir);

33 vec3_t j = {0, 1, 0};

34 vec3_t i = v3_cross(j, k);

35 j = v3_cross(k, i);

36 basis_matrix(res, i, j, k);

37 }