glstuff

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 55c89555acfa2b6694100b6a1df22bfa38acd191
parent 3d921b9005d67438f71884181cf4059fb4b07551
Author: Brian Swetland <swetland@frotz.net>
Date:   Sun, 20 Jan 2013 12:57:21 -0800

add mtx_?_rotation() functions to create rotation matrices

Diffstat:
Mutil.c | 28++++++++++++++++++++--------
Mutil.h | 5+++++
2 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/util.c b/util.c @@ -70,8 +70,7 @@ void mtx_translate(mat4 m, float x, float y, float z) { m[3][3] += (m[0][3] * x + m[1][3] * y + m[2][3] * z); } -void mtx_rotate_x(mat4 m, float angle) { - mat4 r; +void mtx_x_rotation(mat4 r, float angle) { float sa,ca; angle = angle * M_PI / 180.0; sa = sinf(angle); @@ -83,11 +82,9 @@ void mtx_rotate_x(mat4 m, float angle) { r[2][1] = sa; r[2][2] = ca; r[3][3] = 1; - mtx_mul(m, r, m); } -void mtx_rotate_y(mat4 m, float angle) { - mat4 r; +void mtx_y_rotation(mat4 r, float angle) { float sa,ca; angle = angle * M_PI / 180.0; sa = sinf(angle); @@ -99,11 +96,9 @@ void mtx_rotate_y(mat4 m, float angle) { r[2][0] = -sa; r[2][2] = ca; r[3][3] = 1; - mtx_mul(m, r, m); } -void mtx_rotate_z(mat4 m, float angle) { - mat4 r; +void mtx_z_rotation(mat4 r, float angle) { float sa,ca; angle = angle * M_PI / 180.0; sa = sinf(angle); @@ -115,6 +110,23 @@ void mtx_rotate_z(mat4 m, float angle) { r[1][1] = ca; r[2][2] = 1; r[3][3] = 1; +} + +void mtx_rotate_x(mat4 m, float angle) { + mat4 r; + mtx_x_rotation(r, angle); + mtx_mul(m, r, m); +} + +void mtx_rotate_y(mat4 m, float angle) { + mat4 r; + mtx_y_rotation(r, angle); + mtx_mul(m, r, m); +} + +void mtx_rotate_z(mat4 m, float angle) { + mat4 r; + mtx_z_rotation(r, angle); mtx_mul(m, r, m); } diff --git a/util.h b/util.h @@ -37,6 +37,11 @@ void mtx_rotate_x(mat4 out, float angle); void mtx_rotate_y(mat4 out, float angle); void mtx_rotate_z(mat4 out, float angle); +/* initializes matrix out to the transform */ +void mtx_x_rotation(mat4 out, float angle); +void mtx_y_rotation(mat4 out, float angle); +void mtx_z_rotation(mat4 out, float angle); + /* GLU-style perspective matrix helper functions */ void mtx_ortho(mat4 out, float left, float right,