Ejemplo n.º 1
0
t_k		*luminosite(t_spot *spot, t_k *k, t_objet *obj, t_utils *utils)
{
	double	a;
	double	tmp;
	t_utils	l;
	t_objet	obj3;

	a = 0.0;
	init_new_color(k);
	trans_inv(utils, obj, 0);
	obj_rot(utils, obj, -1, 1);
	calc_coord(k, &obj3, utils);
	utils = init_norm(obj, obj3, utils);
	while (spot != NULL)
	{
		init_distance(spot, &l, obj3);
		tmp = calc_cos(utils, l);
		get_new_color(k, (tmp < 0.0 ? tmp = 0.0 : tmp), obj, spot);
		spot = spot->next;
		a++;
	}
	obj_rot(utils, obj, 1, 1);
	trans_nor(utils, obj, 0);
	check_color(k, a, utils);
	return (k);
}
Ejemplo n.º 2
0
t_k	*luminosite(t_spot *spot, t_k *k, t_objet *obj, t_utils *utils)
{
  t_utils	L;
  t_objet	obj3;
  double	tmp;
  double	a;

  a = 0.0;
  init_new_color(k);
  trans_inv(utils, obj, 0);
  obj_rot(utils, obj, -1, 1);
  calc_coord(k, &obj3, utils);
  utils = my_init_norm(obj, obj3, utils);
  while (spot != NULL)
    {
      init_distance(spot, &L, obj3);
      tmp = calc_cos(utils, L);
      if (obj->texture == 1 || obj->texture == 2)
	k = texture(obj3, k, obj->texture);
      get_new_color(k, (tmp < 0.0 ? tmp = 0.0 : tmp), obj, spot);
      spot = spot->next;
      a++;
    }
  obj_rot(utils, obj, 1, 1);
  trans_nor(utils, obj, 0);
  check_color(k, a, utils);
  return (k);
}
Ejemplo n.º 3
0
Archivo: calc.c Proyecto: NegMozzie/42
t_k		calc(double x, double y, t_param *param, t_k *k)
{
	t_k		closest;
	t_objet	*tmp;
	t_utils	utils;

	k = NULL;
	init_k(&closest);
	init_utils(&utils);
	tmp = param->objet;
	init_utils_eye(&utils, param, x, y);
	obj_rot(&utils, NULL, -1, 0);
	while (tmp != NULL)
	{
		k = search_k(tmp, utils, k, param);
		tmp = tmp->next;
	}
	closest = fill_closest(k, closest);
	if (k)
		free(k);
	return (closest);
}