diff options
Diffstat (limited to 'vendor/libftm/inc')
| -rw-r--r-- | vendor/libftm/inc/libftm_mat4.h | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/vendor/libftm/inc/libftm_mat4.h b/vendor/libftm/inc/libftm_mat4.h index f69d7e6..5fc183b 100644 --- a/vendor/libftm/inc/libftm_mat4.h +++ b/vendor/libftm/inc/libftm_mat4.h @@ -6,7 +6,7 @@ /* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/05/12 11:04:59 by charles #+# #+# */ -/* Updated: 2020/05/12 13:53:40 by charles ### ########.fr */ +/* Updated: 2020/05/12 17:21:34 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,8 +22,33 @@ typedef struct float m[4 * 4]; } t_ftmmat4; +/* +** http://www.songho.ca/opengl/gl_projectionmatrix.html +*/ + +typedef struct +{ + float near; + float far; + float left; + float right; + float top; + float bottom; +} t_ftmfrustum; + +typedef struct +{ + float near; + float far; + float width; + float height; +} t_ftmfrustum_sym; + t_ftmmat4 *ftm_mat4init_eye(t_ftmmat4 *mat4, float x); t_ftmmat4 *ftm_mat4init_fill(t_ftmmat4 *mat4, float x); +t_ftmmat4 *ftm_mat4init_frustum(t_ftmmat4 *mat4, t_ftmfrustum *frustum); +t_ftmmat4 *ftm_mat4init_frustum_sym(t_ftmmat4 *mat4, t_ftmfrustum_sym *frustum); +t_ftmmat4 *ftm_mat4init_perspective(t_ftmmat4 *mat4, float fov, float aspect_ratio, float near, float far); t_ftmmat4 *ftm_mat4translate(t_ftmmat4 *mat4, float x, float y, float z); t_ftmmat4 *ftm_mat4rotate(t_ftmmat4 *mat4, float radian, t_ftmvec3 *axis); t_ftmmat4 *ftm_mat4scale(t_ftmmat4 *mat4, float x, float y, float z); |
