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  }