From d2856e38c922c283c5e7e506e399e3bab830ee45 Mon Sep 17 00:00:00 2001 From: H3XploR Date: Mon, 17 Feb 2025 23:36:51 +0100 Subject: [PATCH] fonctionnel --- config.c | 6 ++- config.rt | 4 +- main.c | 13 +---- miniRT.h | 17 ++++-- print.c | 139 ++++++++++++++++++++++++++++++++++++++++++++++++ tags | 11 +++- update_camera.c | 2 +- 7 files changed, 170 insertions(+), 22 deletions(-) create mode 100644 print.c diff --git a/config.c b/config.c index 4776fce..126947b 100644 --- a/config.c +++ b/config.c @@ -6,7 +6,7 @@ /* By: yantoine +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/02/14 01:41:17 by yantoine #+# #+# */ -/* Updated: 2025/02/17 21:52:57 by yantoine ### ########.fr */ +/* Updated: 2025/02/17 23:28:25 by yantoine ### ########.fr */ /* */ /* ************************************************************************** */ @@ -54,8 +54,10 @@ t_scene load_config(const char *filename) line = get_next_line(fd); if (!line) break ; - parsing_line(line, scene); + scene = parsing_line(line, scene); free(line); } + printf("AFFICHE CONFIG\n"); + print_scene(scene); return (scene); } diff --git a/config.rt b/config.rt index 9f9fafd..ea44613 100644 --- a/config.rt +++ b/config.rt @@ -6,7 +6,7 @@ # By: yantoine +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2025/02/13 19:27:37 by yantoine #+# #+# # -# Updated: 2025/02/13 19:37:39 by yantoine ### ########.fr # +# Updated: 2025/02/17 23:33:44 by yantoine ### ########.fr # # # # **************************************************************************** # @@ -14,7 +14,7 @@ A 0 255,255,255 # Camera : position à (0,0,20) et orientée vers (0,0,-1) avec un FOV de 70° -C 10,20,20 0,0,-1 70 +C 10,0,-30 0,0,1 70 # Light : source lumineuse forte placée au-dessus de la scène L 11,40,-30 1 255,255,255 diff --git a/main.c b/main.c index 9cc6ad7..c0105f2 100644 --- a/main.c +++ b/main.c @@ -6,7 +6,7 @@ /* By: yantoine +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/02/17 19:54:03 by yantoine #+# #+# */ -/* Updated: 2025/02/17 23:10:31 by yantoine ### ########.fr */ +/* Updated: 2025/02/17 23:35:02 by yantoine ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,17 +20,6 @@ static int init_app_config(t_app *app, int argc, char **argv) scene = load_config(argv[1]); app->win_width = WIDTH; app->win_height = HEIGHT; - app->scene.camera.move_speed = 0.5f; - app->scene.camera.rot_speed = 0.03f; - app->mouse_sens = 0.002f; - app->key_w = 0; - app->key_s = 0; - app->key_a = 0; - app->key_d = 0; - app->key_left = 0; - app->key_right = 0; - app->key_up = 0; - app->key_down = 0; app->scene = scene; return (0); } diff --git a/miniRT.h b/miniRT.h index 2ccc38f..e28fe4e 100644 --- a/miniRT.h +++ b/miniRT.h @@ -6,7 +6,7 @@ /* By: yantoine +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/02/13 20:02:36 by yantoine #+# #+# */ -/* Updated: 2025/02/17 23:10:49 by yantoine ### ########.fr */ +/* Updated: 2025/02/17 23:35:34 by yantoine ### ########.fr */ /* */ /* ************************************************************************** */ @@ -94,8 +94,6 @@ typedef struct s_camera t_vec3 camDir; t_vec3 right; t_vec3 up; - float move_speed; - float rot_speed; float fov; float yaw;// vue de gauche a droite float pitch; // vue de haut en bas en radians @@ -239,6 +237,19 @@ int update_frame(t_app *app); // Array int ft_arraylen(char **array); void ft_free_array(char **array); + // Conversion float ft_atof(char *str); + +// Info +void print_vec3(t_vec3 vec); +void print_ray(t_ray ray); +void print_sphere(t_sphere sphere); +void print_plane(t_plane plane); +void print_cylinder(t_cylinder cyl); +void print_light(t_light light); +void print_ambient(t_ambient amb); +void print_camera(t_camera cam); +void print_scene(t_scene scene); + #endif diff --git a/print.c b/print.c new file mode 100644 index 0000000..9879dc8 --- /dev/null +++ b/print.c @@ -0,0 +1,139 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* print.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: yantoine +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/02/17 23:16:21 by yantoine #+# #+# */ +/* Updated: 2025/02/17 23:35:54 by yantoine ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "miniRT.h" + +void print_vec3(t_vec3 vec) { + printf("(x: %.2f, y: %.2f, z: %.2f)", vec.x, vec.y, vec.z); +} + +void print_ray(t_ray ray) { + printf("Rayon d'origine : "); + print_vec3(ray.origin); + printf("\nDirection : "); + print_vec3(ray.dir); + printf("\n"); +} + +void print_sphere(t_sphere sphere) { + printf("Centre : "); + print_vec3(sphere.center); + printf("\nRayon : %.2f", sphere.radius); + printf("\nCouleur : "); + print_vec3(sphere.color); + printf("\n"); +} + +void print_plane(t_plane plane) { + printf("Point : "); + print_vec3(plane.point); + printf("\nNormale : "); + print_vec3(plane.normal); + printf("\nCouleur : "); + print_vec3(plane.color); + printf("\n"); +} + +void print_cylinder(t_cylinder cyl) { + printf("Centre : "); + print_vec3(cyl.center); + printf("\nAxe : "); + print_vec3(cyl.axis); + printf("\nRayon : %.2f", cyl.radius); + printf("\nHauteur : %.2f", cyl.height); + printf("\nCouleur : "); + print_vec3(cyl.color); + printf("\n"); +} + +void print_light(t_light light) { + printf("Position : "); + print_vec3(light.pos); + printf("\nIntensité : %.2f", light.brightness); + printf("\nCouleur : "); + print_vec3(light.color); + printf("\n"); +} + +void print_ambient(t_ambient amb) { + printf("Ratio d'ambiance : %.2f\n", amb.ratio); + printf("Couleur ambiante : "); + print_vec3(amb.color); + printf("\n"); +} + +void print_camera(t_camera cam) { + printf("Position de la caméra : "); + print_vec3(cam.camPos); + printf("\nDirection : "); + print_vec3(cam.camDir); + printf("\nRight : "); + print_vec3(cam.right); + printf("\nUp : "); + print_vec3(cam.up); + printf("\nFOV : %.2f", cam.fov); + printf("\nYaw : %.2f", cam.yaw); + printf("\nPitch : %.2f", cam.pitch); + printf("\n"); +} + +void print_scene(t_scene scene) { + int i = 0; + + printf("=== SCENE ===\n"); + + // Ambiance + printf("\n--- Ambiance ---\n"); + print_ambient(scene.ambient); + + // Caméra + if (scene.numCamera > 0) { + printf("\n--- Caméra ---\n"); + print_camera(scene.camera); + } + + // Sphères + printf("\n--- Sphères (%d) ---\n", scene.numSpheres); + i = 0; + while (i < scene.numSpheres) { + printf("\nSphère %d :\n", i); + print_sphere(scene.spheres[i]); + i++; + } + + // Plans + printf("\n--- Plans (%d) ---\n", scene.numPlanes); + i = 0; + while (i < scene.numPlanes) { + printf("\nPlan %d :\n", i); + print_plane(scene.planes[i]); + i++; + } + + // Cylindres + printf("\n--- Cylindres (%d) ---\n", scene.numCylinders); + i = 0; + while (i < scene.numCylinders) { + printf("\nCylindre %d :\n", i); + print_cylinder(scene.cylinders[i]); + i++; + } + + // Lumières + printf("\n--- Lumières (%d) ---\n", scene.numLights); + i = 0; + while (i < scene.numLights) { + printf("\nLumière %d :\n", i); + print_light(scene.lights[i]); + i++; + } +} diff --git a/tags b/tags index 7836e65..8fe8b16 100644 --- a/tags +++ b/tags @@ -550,7 +550,6 @@ mouse_sens miniRT.h /^ float mouse_sens;$/;" m struct:s_app typeref:typename:flo mouse_win1 minilibx-linux/test/main.c /^int mouse_win1(int button,int x,int y, void *p)$/;" f typeref:typename:int mouse_win2 minilibx-linux/test/main.c /^int mouse_win2(int button,int x,int y, void *p)$/;" f typeref:typename:int mouse_win3 minilibx-linux/test/main.c /^int mouse_win3(int x,int y, void *p)$/;" f typeref:typename:int -move_speed miniRT.h /^ float move_speed;$/;" m struct:s_camera typeref:typename:float n miniRT.h /^ t_vec3 n;$/;" m struct:s_calc typeref:typename:t_vec3 name minilibx-linux/mlx_int.h /^ char *name;$/;" m struct:s_col_name typeref:typename:char * name minilibx-linux/mlx_int.h /^ int name;$/;" m struct:s_xpm_col typeref:typename:int @@ -588,6 +587,15 @@ pixels miniRT.h /^ int *pixels;$/;" m struct:s_app typeref:typename:int * planes miniRT.h /^ t_plane planes[MAX_PLANES];$/;" m struct:s_scene typeref:typename:t_plane[] point miniRT.h /^ t_vec3 point;$/;" m struct:s_plane typeref:typename:t_vec3 pos miniRT.h /^ t_vec3 pos;$/;" m struct:s_light typeref:typename:t_vec3 +print_ambient print.c /^void print_ambient(t_ambient amb) {$/;" f typeref:typename:void +print_camera print.c /^void print_camera(t_camera cam) {$/;" f typeref:typename:void +print_cylinder print.c /^void print_cylinder(t_cylinder cyl) {$/;" f typeref:typename:void +print_light print.c /^void print_light(t_light light) {$/;" f typeref:typename:void +print_plane print.c /^void print_plane(t_plane plane) {$/;" f typeref:typename:void +print_ray print.c /^void print_ray(t_ray ray) {$/;" f typeref:typename:void +print_scene print.c /^void print_scene(t_scene scene) {$/;" f typeref:typename:void +print_sphere print.c /^void print_sphere(t_sphere sphere) {$/;" f typeref:typename:void +print_vec3 print.c /^void print_vec3(t_vec3 vec) {$/;" f typeref:typename:void printf_fd libft/printf_fd.c /^int printf_fd(int fd, const char *str, ...)$/;" f typeref:typename:int private_cmap minilibx-linux/mlx_int.h /^ int private_cmap;$/;" m struct:s_xvar typeref:typename:int proj miniRT.h /^ float proj;$/;" m struct:s_calc typeref:typename:float @@ -609,7 +617,6 @@ render_pixel render.c /^static void render_pixel(t_app *app, int x, int y)$/;" f render_scene render.c /^void render_scene(t_app *app)$/;" f typeref:typename:void right miniRT.h /^ t_vec3 right;$/;" m struct:s_camera typeref:typename:t_vec3 root minilibx-linux/mlx_int.h /^ Window root;$/;" m struct:s_xvar typeref:typename:Window -rot_speed miniRT.h /^ float rot_speed;$/;" m struct:s_camera typeref:typename:float s_ambient miniRT.h /^typedef struct s_ambient$/;" s s_app miniRT.h /^typedef struct s_app$/;" s s_calc miniRT.h /^typedef struct s_calc$/;" s diff --git a/update_camera.c b/update_camera.c index 078566d..6cf7472 100644 --- a/update_camera.c +++ b/update_camera.c @@ -6,7 +6,7 @@ /* By: yantoine +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/02/17 19:27:23 by yantoine #+# #+# */ -/* Updated: 2025/02/17 23:07:57 by yantoine ### ########.fr */ +/* Updated: 2025/02/17 23:36:33 by yantoine ### ########.fr */ /* */ /* ************************************************************************** */