NEW RAYTRACER
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* calcul_de_vecteur.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: yantoine <yantoine@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/02/13 20:15:13 by yantoine #+# #+# */
|
||||
/* Updated: 2025/02/13 20:15:46 by yantoine ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "miniRT.h"
|
||||
|
||||
// ----- Opérations sur les vecteurs
|
||||
|
||||
t_vec3 vec3_add(t_vec3 a, t_vec3 b)
|
||||
{
|
||||
return ((t_vec3){a.x + b.x, a.y + b.y, a.z + b.z});
|
||||
}
|
||||
|
||||
t_vec3 vec3_sub(t_vec3 a, t_vec3 b)
|
||||
{
|
||||
return ((t_vec3){a.x - b.x, a.y - b.y, a.z - b.z});
|
||||
}
|
||||
|
||||
t_vec3 vec3_scale(t_vec3 a, float s)
|
||||
{
|
||||
return ((t_vec3){a.x * s, a.y * s, a.z * s});
|
||||
}
|
||||
|
||||
float vec3_dot(t_vec3 a, t_vec3 b)
|
||||
{
|
||||
return (a.x * b.x + a.y * b.y + a.z * b.z);
|
||||
}
|
||||
|
||||
t_vec3 vec3_cross(t_vec3 a, t_vec3 b)
|
||||
{
|
||||
return ((t_vec3){a.y * b.z - a.z * b.y, a.z * b.x - a.x * b.z, a.x * b.y
|
||||
- a.y * b.x});
|
||||
}
|
||||
|
||||
float vec3_length(t_vec3 a)
|
||||
{
|
||||
return (sqrtf(vec3_dot(a, a)));
|
||||
}
|
||||
|
||||
t_vec3 vec3_normalize(t_vec3 a)
|
||||
{
|
||||
float len;
|
||||
|
||||
len = vec3_length(a);
|
||||
return ((len > 0) ? vec3_scale(a, 1.0f / len) : a);
|
||||
}
|
||||
|
||||
t_vec3 vec3_mul(t_vec3 a, t_vec3 b)
|
||||
{
|
||||
return ((t_vec3){a.x * b.x, a.y * b.y, a.z * b.z});
|
||||
}
|
||||
Reference in New Issue
Block a user