scene.c
1 /* ************************************************************************** */ 2 /* */ 3 /* ::: :::::::: */ 4 /* scene.c :+: :+: :+: */ 5 /* +:+ +:+ +:+ */ 6 /* By: salee2 <salee2@student.42seoul.kr> +#+ +:+ +#+ */ 7 /* +#+#+#+#+#+ +#+ */ 8 /* Created: 2023/05/24 20:23:01 by salee2 #+# #+# */ 9 /* Updated: 2023/05/24 20:23:02 by salee2 ### ########.fr */ 10 /* */ 11 /* ************************************************************************** */ 12 13 #include "include/minirt.h" 14 15 t_scene *scene_(void) 16 { 17 t_scene *scene; 18 t_object *objects; 19 t_object *lights; 20 double ambient_intensity; 21 22 scene = (t_scene*) malloc(sizeof(t_scene)); 23 if(scene == NULL) 24 return (NULL); 25 scene->canvas = canvas_(500); 26 scene->camera = camera_(&scene->canvas, point3_(0, 0, 10), point3_(0,0,-1), 70); 27 28 // objects = object_(CONE, cone_(point3_(0, 0, 0), vec3_(0, -1,0 ), 2, 4),color3_(0, 0, 1)); 29 30 objects = object_(CYLINDER, cylinder_(point3_(0, 0, 3), vec3_(1,0,0), 3, 1), color3_(1,0,0)); 31 // append_object(&objects, object_(CYLINDER, cylinder_(point3_(0, 0, 0), vec3_(0,-1,0), 3, 1), color3_(0,1,0))); 32 append_object(&objects, object_(CONE, cone_(point3_(0, 0, 0), vec3_(0,1,0), 3, 5), color3_(0,0,1))); 33 34 // objects = object_(CYLINDER, cylinder_(point3_(0, 0, 0), vec3_(0,1,0), 3, 1), color3_(1,0,0)); 35 append_object(&objects, object_(SPHERE,sphere_(point3_(0, 0, 0), 2), color3_(0.1,1,0))); 36 37 // objects = object_(SPHERE, sphere_(point3_(0, -0, 0), 2), color3_(0.5,0,0)); 38 // append_object(&objects, object_(CYLINDER, cylinder_(point3_(0, 0, 0), vec3_(0,1,0), 3, 1), color3_(1,0,0))); 39 // append_object(&objects, object_(CONE, cone_(point3_(0, 0, 0), vec3_(0,0,1), 2, 4), color3_(0,0,1))); 40 41 // objects = object_(CONE, cone_(point3_(0, 0, 0), vec3_(0, 0, -1), 2, 4),color3_(0, 0, 1)); 42 // append_object(&objects, object_(PLANE,plane_(point3_(0, 0, 0),vec3_(1, 1, 0)), color3_(0, 0, 1))); 43 // objects = object_(CONE, cone_(point3_(0, 0, 0), vec3_(0,0,1), 2, 6), color3_(0.5,0,0)); 44 // append_object(&objects, object_(CONE, cone_(point3_(0, 0, 0), vec3_(0,0,1), 2, 4), color3_(0,0,1))); 45 // append_object(&objects, object_(CYLINDER, cylinder_(point3_(0, 0, 0), vec3_(0,1,0), 3, 1), color3_(1,0,0))); 46 // objects = object_(CYLINDER, cylinder_(point3_(0, 0, 0), vec3_(0,1,0), 3, 1), color3_(1,0,0)); 47 48 // objects = object_(SPHERE, sphere_(point3_(2.0, 0.0, -5), 2), color3_(1,0,0)); 49 // append_object(&objects, object_(SPHERE, sphere_(point3_(0, -0, 0), 2), color3_(0.1,1,0)) ); 50 // append_object(&objects, object_(SPHERE, sphere_(point3_(0.0, -500, 0), 498), color3_(1, 1, 1))); 51 // append_object(&objects, object_(CYLINDER, cylinder_(point3_(2, -1, -5), vec3_(1, 0,0), 2, 2),color3_(1, 0, 0))); 52 53 // append_object(&objects, object_(PLANE,plane_(point3_(0, 0, -50),vec3_(0, 0,1)), color3_(0, 0.5,0.5 ))); 54 // append_object(&objects, object_(PLANE,plane_(point3_(-30, 0, 0), vec3_(-1, 0, 0)), color3_(0, 0.7, 0.3))); 55 // append_object(&objects, object_(PLANE,plane_(point3_(0, -30, 0),vec3_(0, 1,0)), color3_(0, 0.6, 0.4))); 56 // append_object(&objects, object_(PLANE,plane_(point3_(30, 0, 0), vec3_(1,0,0)), color3_(0, 0.4, 0.6))); 57 // append_object(&objects, object_(PLANE,plane_(point3_(0, 30, 0),vec3_(0, 1,0)), color3_(0, 0.3, 0.7))); 58 59 // append_object(&objects, object_(PLANE,plane_(point3_(0, 0, 0),vec3_(0, 0, 1)), color3_(0, 0, 0))); 60 61 scene->objects = objects; 62 lights = NULL; 63 lights = object_(LIGHT_POINT, light_point(point3_(0, 20,0 ), color3_(1, 1, 1), 0.5), color3_(0, 0, 0)); 64 // append_object(&lights,object_(LIGHT_POINT, light_point(point3_(-10, -10, 0 ), color3_(1, 1, 1), 0.5), color3_(0, 0, 0))); 65 // append_object(&lights,object_(LIGHT_POINT, light_point(point3_(0, 0,10 ), color3_(1, 1, 1), 0.5), color3_(0, 0, 0))); 66 // append_object(&lights,object_(LIGHT_POINT, light_point(point3_(0, 0,-10 ), color3_(1, 1, 1), 0.5), color3_(0, 0, 0))); 67 68 scene->light = lights; 69 ambient_intensity = 0.1; 70 scene->ambient = scl_mul(ambient_intensity, color3_(1, 1, 1)); 71 return (scene); 72 }