mirror of
https://github.com/guezoloic/t3dsr.git
synced 2026-01-25 15:34:24 +00:00
feat: add rotation function and add functions to cam.h
This commit is contained in:
42
src/cam.c
42
src/cam.c
@@ -60,3 +60,45 @@ Mat4f_t lookAt(Vec4f_t* eye, Vec4f_t* center, Vec4f_t* up)
|
|||||||
|
|
||||||
return mat4f_from_array(m);
|
return mat4f_from_array(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Mat4f_t rotateX(float angle)
|
||||||
|
{
|
||||||
|
Mat4f_t r = mat4f_identity();
|
||||||
|
float c = cosf(angle);
|
||||||
|
float s = sinf(angle);
|
||||||
|
|
||||||
|
r.m[5] = c;
|
||||||
|
r.m[6] = -s;
|
||||||
|
r.m[9] = s;
|
||||||
|
r.m[10] = c;
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
Mat4f_t rotateY(float angle)
|
||||||
|
{
|
||||||
|
Mat4f_t r = mat4f_identity();
|
||||||
|
float c = cosf(angle);
|
||||||
|
float s = sinf(angle);
|
||||||
|
|
||||||
|
r.m[0] = c;
|
||||||
|
r.m[2] = s;
|
||||||
|
r.m[8] = -s;
|
||||||
|
r.m[10] = c;
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
Mat4f_t rotateZ(float angle)
|
||||||
|
{
|
||||||
|
Mat4f_t r = mat4f_identity();
|
||||||
|
float c = cosf(angle);
|
||||||
|
float s = sinf(angle);
|
||||||
|
|
||||||
|
r.m[0] = c;
|
||||||
|
r.m[1] = -s;
|
||||||
|
r.m[4] = s;
|
||||||
|
r.m[5] = c;
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
||||||
@@ -4,3 +4,9 @@
|
|||||||
Mat4f_t perspCam(float fov, float asp, float near, float far);
|
Mat4f_t perspCam(float fov, float asp, float near, float far);
|
||||||
Vec4f_t* normCoord_r(Vec4f_t* vec);
|
Vec4f_t* normCoord_r(Vec4f_t* vec);
|
||||||
Vec4f_t* viewport_r(Vec4f_t* vec, float width, float height);
|
Vec4f_t* viewport_r(Vec4f_t* vec, float width, float height);
|
||||||
|
|
||||||
|
Mat4f_t lookAt(Vec4f_t* eye, Vec4f_t* center, Vec4f_t* up);
|
||||||
|
|
||||||
|
Mat4f_t rotateX(float angle);
|
||||||
|
Mat4f_t rotateY(float angle);
|
||||||
|
Mat4f_t rotateZ(float angle);
|
||||||
Reference in New Issue
Block a user