mirror of
https://github.com/guezoloic/t3dsr.git
synced 2026-01-25 03:34:22 +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
@@ -59,4 +59,46 @@ Mat4f_t lookAt(Vec4f_t* eye, Vec4f_t* center, Vec4f_t* up)
|
||||
};
|
||||
|
||||
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;
|
||||
}
|
||||
@@ -3,4 +3,10 @@
|
||||
|
||||
Mat4f_t perspCam(float fov, float asp, float near, float far);
|
||||
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