void ft_init_disk2_3(t_dis **ldis) { ft_init_vect(&ldis[5]->c, 0, -6.2, -2005); ldis[5]->r = 1; ft_init_vect(&ldis[5]->n, -1, 0, 0.4); ft_normalize_vect(&ldis[5]->n); ft_init_color(&ldis[5]->sf, 30, 30, 0); ft_init_vect(&ldis[6]->c, 8.5, -7, -1997); ldis[6]->r = 0.7; ft_init_vect(&ldis[6]->n, 1, 0, 0.3); ft_normalize_vect(&ldis[6]->n); ft_init_color(&ldis[6]->sf, 0, 50, 50); ft_init_vect(&ldis[7]->c, 6.6, -6.6, -1998.5); ldis[7]->r = 0.9; ft_init_vect(&ldis[7]->n, -0.1, 1, 0.5); ft_normalize_vect(&ldis[7]->n); ft_init_color(&ldis[7]->sf, 20, 10, 50); ft_init_vect(&ldis[8]->c, 0.4, -7.5, -2004.2); ldis[8]->r = 0.6; ft_init_vect(&ldis[8]->n, -0.2, 1, -0.5); ft_normalize_vect(&ldis[8]->n); ft_init_color(&ldis[8]->sf, 30, 30, 0); ft_init_vect(&ldis[9]->c, -3, 0, -600); ldis[9]->r = 3; ft_init_vect(&ldis[9]->n, 1, 0, 0.2); ft_normalize_vect(&ldis[9]->n); ft_init_color(&ldis[9]->sf, 0, 0, 0); }
void ft_init_disk2_2(t_dis **ldis) { ft_init_vect(&ldis[0]->c, 4, -1, -3990); ldis[0]->r = 7; ft_init_vect(&ldis[0]->n, 0, 0, -1); ft_normalize_vect(&ldis[0]->n); ft_init_color(&ldis[0]->sf, 10, 10, 10); ft_init_vect(&ldis[1]->c, -4.95, 0, -1000); ldis[1]->r = 3; ft_init_vect(&ldis[1]->n, 1, 0, 0); ft_normalize_vect(&ldis[1]->n); ft_init_color(&ldis[1]->sf, 0, 0, 0); ft_init_vect(&ldis[2]->c, 5, 2, -3980); ldis[2]->r = 1; ft_init_vect(&ldis[2]->n, 0.5, 1, 0.5); ft_normalize_vect(&ldis[2]->n); ft_init_color(&ldis[2]->sf, 80, 0, 0); ft_init_vect(&ldis[3]->c, 0, -2, -3980); ldis[3]->r = 1.4; ft_init_vect(&ldis[3]->n, -1, 0.3, 0.3); ft_normalize_vect(&ldis[3]->n); ft_init_color(&ldis[3]->sf, 10, 50, 0); ft_init_vect(&ldis[4]->c, 7, -5, -2000); ldis[4]->r = 2; ft_init_vect(&ldis[4]->n, 1, 0, 0.3); ft_normalize_vect(&ldis[4]->n); ft_init_color(&ldis[4]->sf, 20, 10, 50); }
int ft_init_disk2(t_obj *obj) { t_dis **ldis; int i; obj->nb[DIS] = 11; if (!(((t_dis ***)obj->type)[DIS] = (t_dis **)gmalloc(sizeof(t_dis *) * obj->nb[DIS]))) return (-1); ldis = ((t_dis ***)obj->type)[DIS]; i = -1; while (++i < obj->nb[DIS]) { if (!(ldis[i] = (t_dis *)gmalloc(sizeof(t_dis)))) return (-1); } ft_init_disk2_2(ldis); ft_init_disk2_3(ldis); ft_init_vect(&ldis[10]->c, -3, 0.5, -598); ldis[10]->r = 0.32; ft_init_vect(&ldis[10]->n, 0.2, 1, 0.3); ft_normalize_vect(&ldis[10]->n); ft_init_color(&ldis[10]->sf, 0, 20, 80); return (0); }
int ft_treat_a_cone(void *data, t_c *color, t_obj *obj, t_r *r) { t_con *con; double mult; con = (t_con *)data; ft_mult_vect_by_nb(&r->p_hit, r->d_w, r->tnear); ft_vect_sum(&r->p_hit, r->p_hit, r->o_w); ft_init_normal(&r->n_hit, r->p_hit, con); ft_normalize_vect(&r->n_hit); mult = ft_hit_light(r, obj); ft_init_color(color, con->sf.b * mult, con->sf.g * mult, con->sf.r * mult); return (0); }
void ft_init_disk1_2(t_dis **ldis) { ft_init_vect(&ldis[0]->c, -4, 2, -2000); ldis[0]->r = 1; ft_init_vect(&ldis[0]->n, 1, 1, 1); ft_normalize_vect(&ldis[0]->n); ft_init_color(&ldis[0]->sf, 80, 0, 80); ft_init_vect(&ldis[1]->c, -4, 2, -2000); ldis[1]->r = 1; ft_init_vect(&ldis[1]->n, 1, 0, 0.5); ft_normalize_vect(&ldis[1]->n); ft_init_color(&ldis[1]->sf, 20, 20, 80); ft_init_vect(&ldis[2]->c, -4, 2, -2000); ldis[2]->r = 1; ft_init_vect(&ldis[2]->n, 1, 0, 0.5); ft_normalize_vect(&ldis[2]->n); ft_init_color(&ldis[2]->sf, 20, 60, 80); ft_init_vect(&ldis[3]->c, -4, 2, -2000); ldis[3]->r = 1; ft_init_vect(&ldis[3]->n, 1, 0, 0.5); ft_normalize_vect(&ldis[3]->n); ft_init_color(&ldis[3]->sf, 20, 80, 80); }
int ft_init_object_structure(t_obj *obj) { int i; if (!(obj->pixel = (t_c **)gmalloc(sizeof(t_c *) * HEIGHT)) || !(obj->type = (void ***)gmalloc(sizeof(void **) * NB_TYPE)) || !(obj->nb = (int *)gmalloc(sizeof(int) * NB_TYPE))) return (-1); i = -1; while (++i < HEIGHT) { if (!(obj->pixel[i] = (t_c *)gmalloc(sizeof(t_c) * WIDTH))) return (-1); } i = -1; while (++i < NB_TYPE) obj->nb[i] = 0; ft_init_ptr_fct_intersect(obj); ft_init_color(&(obj->bg_clr), 0, 0, 0); return (0); }
void ft_init(t_env *e) { e->mouse = malloc(sizeof(t_mand)); e->zone = ft_init_zone(e); e->idata = ft_get_img_data(e->img); if (e->fract_id == 1) { e->width = WIDTH / 2; e->height = HEIGHT / 2; } else { e->width = WIDTH; e->height = HEIGHT; } if (e->fract_id == 1) e->motion = 1; else e->motion = 0; e->show = 1; e->img_num = 0; ft_init_color(e); }