/ miniRT / practice / miniRT_practice / vector_mag_norm.c
vector_mag_norm.c
 1  /* ************************************************************************** */
 2  /*                                                                            */
 3  /*                                                        :::      ::::::::   */
 4  /*   vector_mag_norm.c                                  :+:      :+:    :+:   */
 5  /*                                                    +:+ +:+         +:+     */
 6  /*   By: salee2 <salee2@student.42seoul.kr>         +#+  +:+       +#+        */
 7  /*                                                +#+#+#+#+#+   +#+           */
 8  /*   Created: 2023/06/02 16:42:27 by salee2            #+#    #+#             */
 9  /*   Updated: 2023/06/02 16:42:29 by salee2           ###   ########.fr       */
10  /*                                                                            */
11  /* ************************************************************************** */
12  
13  #include "include/minirt.h"
14  
15  double	mag_sq(t_vec3 vec)
16  {
17  	return (vec.ai * vec.ai + vec.bj * vec.bj + vec.ck * vec.ck);
18  }
19  
20  double	mag(t_vec3 vec)
21  {
22  	return (sqrt(mag_sq(vec)));
23  }
24  
25  t_vec3	norm(t_vec3 vector)
26  {
27  	const double	m = mag(vector);
28  
29  	return (scl_mul(1.0 / m, vector));
30  }