Esempio n. 1
0
int		my_mouse_funct(int button, int x, int y, t_frac *frac)
{
	double q;

	q = (frac->xmax - frac->xmin) / frac->size;
	frac->xpoint = (double)x * q + frac->xmin;
	frac->ypoint = (double)y * q + frac->ymin;
	frac->offx = (double)x;
	frac->offy = (double)y;
	if (button == 7 || button == 4)
	{
		mlx_clear_window(frac->mlx, frac->win);
		frac->zoom = 2;
		frac = zoom_frac(frac);
		frac->aff_frac(frac);
	}
	else if (button == 6 || button == 5)
	{
		mlx_clear_window(frac->mlx, frac->win);
		frac->zoom = 0.5;
		frac = zoom_frac(frac);
		frac->aff_frac(frac);
	}
	return (0);
}
Esempio n. 2
0
int		key_pressed(int kc, t_eve *e)
{
	if (kc == 53)
		exit(1);
	if (kc == 69)
		e->zfact *= 1.5;
	if (kc == 78)
		e->zfact /= e->zfact > 0.005 ? 1.5 : 1;
	if (kc == 125 || kc == 126)
		e->y0 += kc == 125 ? 20 : -20;
	if (kc == 123 || kc == 124)
		e->x0 += kc == 123 ? -20 : 20;
	if (kc >= 82 && kc <= 92)
		rotates(kc, e);
	if (kc == 35 || kc == 34 || kc == 8)
		change_proj(kc, e);
	if (!e->persp)
		recalc_coords(e);
	else
		recalc_persp_coords(e);
	clear_image(&e->img_address);
	draw_in_im(e);
	mlx_clear_window(e->mlx, e->win);
	mlx_put_image_to_window(e->mlx, e->win, e->img, 0, 0);
	if (kc == 71)
		mlx_clear_window(e->mlx, e->win);
	return (1);
}
Esempio n. 3
0
File: key.c Progetto: Kikoman90/FdF
static int	ft_key2(int keycode, t_var *f)
{
	if (keycode == 126)
	{
		f->ymove -= 30;
		mlx_clear_window(f->mlx, f->win);
		ft_expose_hook(f);
	}
	if (keycode == 69)
	{
		if (f->zoom <= 95)
			f->zoom += 1;
		mlx_clear_window(f->mlx, f->win);
		ft_expose_hook(f);
	}
	if (keycode == 78)
	{
		if (f->zoom >= -35)
			f->zoom -= 1;
		mlx_clear_window(f->mlx, f->win);
		ft_expose_hook(f);
	}
	ft_key3(keycode, f);
	return (0);
}
Esempio n. 4
0
File: key.c Progetto: Kikoman90/FdF
int			ft_key_hook(int keycode, t_var *f)
{
	if (keycode == 53)
		exit(0);
	if (keycode == 123)
	{
		f->xmove -= 30;
		mlx_clear_window(f->mlx, f->win);
		ft_expose_hook(f);
	}
	if (keycode == 124)
	{
		f->xmove += 30;
		mlx_clear_window(f->mlx, f->win);
		ft_expose_hook(f);
	}
	if (keycode == 125)
	{
		f->ymove += 30;
		mlx_clear_window(f->mlx, f->win);
		ft_expose_hook(f);
	}
	ft_key2(keycode, f);
	return (0);
}
Esempio n. 5
0
int		my_key_funct(int keycode, t_frac *frac)
{
	if (keycode == 53)
	{
		ft_putendl("exit");
		exit(0);
	}
	else if (keycode == 15)
	{
		frac_reset(frac);
		mlx_clear_window(frac->mlx, frac->win);
		frac->aff_frac(frac);
	}
	else if (keycode == 38)
		frac->juliamove = (frac->juliamove) ? 0 : 1;
	else if (keycode == 40)
	{
		frac->juliax = 0.285;
		frac->juliay = 0.01;
		frac->juliamove = 0;
		mlx_clear_window(frac->mlx, frac->win);
		frac->aff_frac(frac);
	}
	arrow_keys(frac, keycode);
	change_iter(frac, keycode);
	change_color(frac, keycode);
	return (0);
}
Esempio n. 6
0
void	ft_change(t_glob *gl)
{
	mlx_clear_window(gl->mlx, gl->win);
	gl->img = mlx_new_image(gl->mlx, gl->s_x, gl->s_y);
	gl->disp = mlx_get_data_addr(gl->img, &(gl->bpp), &(gl->sizeline),
			&(gl->endian));
}
Esempio n. 7
0
int		key_pressed(int kc, t_env *e)
{
	key_pressed_split(kc, e);
	key_pressed_splitted_split(kc, e);
	if (kc == KEY_ESC)
		exit(1);
	if (kc == KEY_P || kc == KEY_O)
		e->puissance += kc == KEY_P ? 1 : -1;
	if (kc == KEY_PLUS || kc == KEY_MOINS)
		e->nb_it += kc == KEY_PLUS ? 5 : -5;
	if (kc == LEFT || kc == RIGHT)
	{
		e->re_min += kc == LEFT ? e->pixel_size * 50 : e->pixel_size * (-50);
		e->re_max += kc == LEFT ? e->pixel_size * 50 : e->pixel_size * (-50);
	}
	if (kc == UP || kc == DOWN)
	{
		e->im_min -= kc == DOWN ? e->pixel_size * 50 : e->pixel_size * (-50);
		e->im_max -= kc == DOWN ? e->pixel_size * 50 : e->pixel_size * (-50);
	}
	if (e->ens == 0)
		return (1);
	clear_image(&e->img_address);
	mlx_clear_window(e->mlx, e->win);
	e->draw_fract(e);
	return (1);
}
Esempio n. 8
0
void	ft_clear_mlx(t_mlx *mlx)
{
	mlx_destroy_image(mlx->p_mlx, mlx->mlx_img);
	mlx_clear_window(mlx->p_mlx, mlx->p_win);
	mlx_destroy_window(mlx->p_mlx, mlx->p_win);
	ft_memdel((void **)&mlx);
}
Esempio n. 9
0
int		print_loadbar(t_all *all, t_image *together,
			      double minmax, time_t start)
{
  static int	last_pc = -1;
  static int	last_time = -1;
  time_t	elapsed;
  int		pos;

  pos = (WIN_X / 2) - (630 / 2);
  elapsed = time(NULL) - start;
  if (last_time == elapsed && ABS(last_pc - minmax) < 5 && minmax != 100)
    return (0);
  mlx_clear_window(all->mlx_ptr, all->win_ptr);
  get_motd(all, elapsed);
  mlx_put_image_to_window(all->mlx_ptr, all->win_ptr,
			  together[0].img_ptr, pos, 2 * WIN_Y / 3);
  mlx_put_image_to_window(all->mlx_ptr, all->win_ptr,
			  together[1].img_ptr, pos + 30, 2 * WIN_Y / 3);
  mlx_put_image_to_window(all->mlx_ptr, all->win_ptr,
			  together[2].img_ptr,
			  pos + (minmax * 6) + 30, 2 * WIN_Y / 3);
  put_info(all, elapsed, minmax);
  last_time = elapsed;
  last_pc = minmax;
  return (0);
}
Esempio n. 10
0
void	display_ui_text(void *win)
{
	char *str;

	str = ft_llitoa(g()->p.max_iter);
	mlx_clear_window(g()->e.mlx, win);
	PUT_W(g()->e.mlx, win, 5, 20, WHITE, "Arrows keys to move.");
	PUT_W(g()->e.mlx, win, 5, 40, WHITE, "Left click to stop mouse capture.");
	PUT_W(g()->e.mlx, win, 5, 60, WHITE, "* to inc. iteration, / to dec.");
	PUT_W(g()->e.mlx, win, 5, 80, WHITE, "Spacebar to reset view");
	PUT_W(g()->e.mlx, win, 5, 100, UI_COLOR, "Iterations :");
	PUT_W(g()->e.mlx, win, 100, 100, UI_COLOR, str);
	PUT_W(g()->e.mlx, win, 5, 110, UI_COLOR, "Zoom :");
	PUT_W(g()->e.mlx, win, 5, 120, UI_COLOR, "MOUSE->");
	PUT_W(g()->e.mlx, win, 100, 120, UI_COLOR, check_mouse(g()->p.stop_mouse));
	PUT_W(g()->e.mlx, win, 5, 130, UI_COLOR, "move x:");
	str = ft_llitoa(g()->p.offset.x);
	PUT_W(g()->e.mlx, win, 100, 130, UI_COLOR, str);
	free(str);
	PUT_W(g()->e.mlx, win, 5, 140, UI_COLOR, "move y:");
	str = ft_llitoa(g()->p.offset.y);
	PUT_W(g()->e.mlx, win, 100, 140, UI_COLOR, str);
	free(str);
	str = ft_llitoa(g()->p.zoom);
	PUT_W(g()->e.mlx, win, 100, 110, UI_COLOR, str);
	free(str);
	(g()->p2.win != NULL) ? display_ui_textp2(win) : ' ';
}
Esempio n. 11
0
void	move(int keycode, t_init *st)
{
	if (keycode == 123)
	{
		st->x1 += 0.1 / (0.01 * st->zoom);
		st->x2 -= 0.1 / (0.01 * st->zoom);
	}
	if (keycode == 124)
	{
		st->x1 -= 0.1 / (0.01 * st->zoom);
		st->x2 += 0.1 / (0.01 * st->zoom);;
	}
	if (keycode == 125)
	{
		st->y1 -= 0.1 / (0.01 * st->zoom);
		st->y2 += 0.1 / (0.01 * st->zoom);
	}
	if (keycode == 126)
	{
		st->y1 += 0.1 / (0.01 * st->zoom);
		st->y2 -= 0.1 / (0.01 * st->zoom);
	}
	mlx_clear_window(st->mlx, st->win);
	resolution(*st);
	mlx_put_image_to_window(st->mlx, st->win, st->link,
			st->pos_x_image, st->pos_y_image);
}
Esempio n. 12
0
int			expose_hook(void *data)
{
	t_coord	p;
	t_data	*d;
	t_map	*m;

	p = set_coord(-1, -1);
	d = (t_data*)data;
	m = &(d->map);
	clear_img(&(d->img));
	while (++p.y < m->hgt)
	{
		p.x = -1;
		while (++p.x < m->wth)
		{
			if (m->dot[p.y][p.x].y)
			{
				if (p.y && m->dot[p.y - 1][p.x].y)
					iso_projection(d, p, set_coord(1, -1), set_coord(0, -1));
				if (p.x && m->dot[p.y][p.x - 1].y)
					iso_projection(d, p, set_coord(-1, -1), set_coord(-1, 0));
			}
		}
	}
	mlx_clear_window(d->mlx, d->win);
	mlx_put_image_to_window(d->mlx, d->win, d->img.i, 0, 0);
	return (1);
}
Esempio n. 13
0
void	ft_reducer(t_env *e)
{
    mlx_clear_window(e->mlx, e->win);
    ft_bzero(e->data, e->s_x * e->s_y * 4);
    draw(e);
    mlx_put_image_to_window(e->mlx, e->win, e->img, 0, 0);
}
Esempio n. 14
0
int		zoom(int mouse, int x, int y, t_env *env)
{
	double	x_comp;
	double	y_comp;

	if (y > 0 && x > 0)
	{
		x_comp = (x / env->param->zoom) + env->param->x1;
		y_comp = (y / env->param->zoom) + env->param->y1;
		if (mouse == 4)
		{
			env->param->zoom *= 1.1;
			env->param->x1 = x_comp - (x / env->param->zoom);
			env->param->y1 = y_comp - (y / env->param->zoom);
		}
		if (mouse == 5)
		{
			env->param->zoom /= 1.1;
			env->param->x1 = x_comp - (x / env->param->zoom);
			env->param->y1 = y_comp - (y / env->param->zoom);
		}
		mlx_clear_window(env->mlx, env->win);
		init_fractals(env->param->name, env);
		menu(env);
	}
	return (0);
}
Esempio n. 15
0
void			ft_resize_image(int keycode, t_env *e)
{
	char		*data;

	e->ecart_x += (keycode == PLUS) ? ECART_RATE : 0;
	e->ecart_x -= (keycode == MINUS) ? ECART_RATE : 0;
	mlx_clear_window(e->mlx, e->win);
	mlx_destroy_image(e->mlx, e->img.ptr);
	e->img.ptr = NULL;
	e->img.w = ECART_X * (e->map_w + e->map_h + 2);
	e->img.h = (e->map_h > e->map_w) ? e->map_h + 2 : e->map_w + 2;
	e->img.h *= ECART_X;
	if (!(e->img.ptr = mlx_new_image(e->mlx, e->img.w, e->img.h)))
		ft_end("fdf: Failed to create a new_image.", e);
	data = mlx_get_data_addr(e->img.ptr, &e->bpp, &e->sizeline, &e->endian);
	if (data == NULL)
		ft_end("fdf: Failed to get_data_addr.", e);
	e->img.data = data;
	ft_putstr("New image created is ");
	ft_putnbr(e->img.w);
	ft_putstr(" width and ");
	ft_putnbr(e->img.h);
	ft_putendl(" height.");
	draw(e);
}
Esempio n. 16
0
int			key_hook(int keycode, t_mapinfo *map)
{
	t_mapinfo mapcpy;

	mapcpy = *map;
	mapcpy.points = ft_mapcopy(map);
	if (keycode == 53)
		exit(0);
	else if (keycode == 15)
		key_reset(map);
	else if (keycode >= 0 && keycode <= 14)
		key_rot(keycode, map);
	else if (keycode >= 123 && keycode <= 126)
		key_scale(keycode, map);
	mlx_clear_window(0, map->win);
	scale_points(&mapcpy, mapcpy.scale_x, mapcpy.scale_y);
	rotate_x(map->rot_x, &mapcpy);
	rotate_y(map->rot_y, &mapcpy);
	rotate_z(map->rot_z, &mapcpy);
	ft_centremap(&mapcpy);
	ft_draw_map(mapcpy);
	free_map(mapcpy);
	if (keycode == 15 || keycode == 34)
		ft_draw_instruct(*map);
	//ft_putnbr(keycode);
	//ft_putchar('\n');
	return (0);
}
Esempio n. 17
0
int				ft_mouse(int button, int x, int y, t_mlx *mlx)
{
	double	u;
	double	v;

	u = (WIN_W - (double)x * 2.0) / WIN_H;
	v = (WIN_H - (double)y * 2.0) / WIN_W;
	if (button == 1 && (x >= 0 && x <= WIN_W) && (y >= 0 && y <= WIN_H))
	{
		mlx_clear_window(mlx->mlx, mlx->win);
		mlx_put_image_to_window(mlx->mlx, mlx->win, mlx->img, 0, 0);
		if ((mlx->tmp = ft_seek(u, v, (t_vec){mlx->cam_pos.x + u,
			mlx->cam_pos.y + v, mlx->cam_pos.z}, mlx)) == NULL)
		{
			MSP(mlx->mlx, mlx->win, 630, 720, 0x00FEDC, "no selection");
			mlx->selection = 0;
			return (0);
		}
		ft_string_put(mlx);
		MSP(mlx->mlx, mlx->win, 630, 735, 0x00FEDC, mlx->pos);
		free(mlx->pos);
		//(TMP->type != 4) ? free(mlx->rot) : NULL;
		mlx->selection = 1;
	}
	return (0);
}
Esempio n. 18
0
int			key_hook(int keycode, t_mlx *mlx)
{
	double	tab1[7];
	double	tab2[7];

	mlx_clear_window(mlx->mlx, mlx->win);
	if (keycode == 53)
		exit(0);
	else if (keycode == 49 && mlx->f->nb == 1)
		ft_switch_julia(mlx, tab1, tab2, 0);
	else if (keycode == 69)
		mlx->iter = (mlx->iter < 8000) ? mlx->iter * 2 : mlx->iter;
	else if (keycode == 78)
		mlx->iter = (mlx->iter > 2) ? mlx->iter / 2 : mlx->iter;
	else if (keycode == 8)
		mlx->color++;
	else if (keycode == 3)
		mlx->freq = (mlx->freq < 200) ? mlx->freq * 2 : mlx->freq;
	else if (keycode == 2)
		mlx->freq = (mlx->freq > 0.1) ? mlx->freq / 2 : mlx->freq;
	key_hook2(keycode, mlx);
	ft_move(keycode, mlx);
	ft_draw(mlx);
	return (0);
}
Esempio n. 19
0
int			ft_keyhook(int keycode, t_mlx *mlx)
{
	if ((keycode >= 123 && keycode <= 126) || (keycode == 69 || keycode == 78))
		mlx_clear_window(mlx->init, mlx->win);
	if (keycode == 53)
	{
		ft_free_bundle(mlx);
		mlx_destroy_window(mlx->init, mlx->win);
		exit(0);
	}
	else if (keycode == 35)
		mlx->vmp = ft_draw_map(mlx->vmp, mlx);
	else if (keycode == 126)
		ft_draw_map(ft_shift_up(mlx->vmp), mlx);
	else if (keycode == 125)
		ft_draw_map(ft_shift_down(mlx->vmp), mlx);
	else if (keycode == 124)
		ft_draw_map(ft_shift_right(mlx->vmp), mlx);
	else if (keycode == 123)
		ft_draw_map(ft_shift_left(mlx->vmp), mlx);
	else if (keycode == 69)
		ft_draw_map(ft_z_in(mlx->vmp), mlx);
	else if (keycode == 78)
		ft_draw_map(ft_z_out(mlx->vmp), mlx);
	return (0);
}
Esempio n. 20
0
int		zoom_fs(int button, int x, int y, t_ftol *f)
{
	double	tz_x;
	double	tz_y;

	mlx_destroy_image(f->mlx, f->img);
	mlx_clear_window(f->mlx, f->win);
	f->img = mlx_new_image(f->mlx, 800, 800);
	tz_x = f->zoom_x;
	tz_y = f->zoom_y;
	if (button == 5)
	{
		f->zoom_x = f->zoom_x * 2;
		f->zoom_y = f->zoom_y * 2;
		f->it_max += 10;
	}
	if (button == 4)
	{
		f->zoom_x = f->zoom_x / 2;
		f->zoom_y = f->zoom_y / 2;
		f->it_max -= 10;
	}
	f->x1_tmp += x / tz_x - (x / f->zoom_x);
	f->y1_tmp += y / tz_y - (y / f->zoom_y);
	print_fs(f);
	mlx_put_image_to_window(f->mlx, f->win, f->img, 0, 0);
	return (0);
}
Esempio n. 21
0
File: fdf.c Progetto: Xethan/fdf
int		key_hook(int keycode, t_env *e)
{
	size_t	i;

	if ((keycode >= 65361 && keycode <= 65364)
		|| keycode == 65451 || keycode == 65453 || keycode == 65293
		|| keycode == 65455 || keycode == 65450 || keycode == 114)
	{
		*e = recompute_map(*e, keycode);
		*e = compute_map(*e);
		mlx_clear_window(e->mlx, e->win);
		draw_window(e);
	}
	if (keycode == 65307)
	{
		i = 0;
		while (i != e->y)
		{
			free(e->map[i]);
			i++;
		}
		free(e->map);
		exit(EXIT_SUCCESS);
	}
	return (0);
}
Esempio n. 22
0
int		ft_expose_hook(t_data *data)
{
	mlx_clear_window(data->mlx, data->win);
	mlx_string_put(data->mlx, data->win, 10, 10, 0x00FFFF,
				"(H)MENU");
	ft_putdot(data, data->new1, -1, -1);
	return (0);
}
Esempio n. 23
0
int			ft_keypress(int keycode, t_env *e)
{
    if (keycode == 65307)
        exit_gracefully("You exited the program");
    mlx_clear_window(e->mlx, e->win);
    ft_draw(e);
    return (0);
}
Esempio n. 24
0
File: key.c Progetto: Kikoman90/FdF
static int	ft_key3(int keycode, t_var *f)
{
	if (keycode == 13)
	{
		if (f->z <= 30.)
			f->z += 0.1;
		mlx_clear_window(f->mlx, f->win);
		ft_expose_hook(f);
	}
	if (keycode == 1)
	{
		if (f->z >= -30.)
			f->z -= 0.1;
		mlx_clear_window(f->mlx, f->win);
		ft_expose_hook(f);
	}
	return (0);
}
Esempio n. 25
0
int			launch_menu(t_all *all)
{
	mlx_clear_window(MLX, WIN);
	draw_background(all);
	draw_arc(all);
	draw_str_menu(all);
	all->in_menu = 1;
	return (1);
}
Esempio n. 26
0
void		size_up(t_map *sizes)
{
	mlx_clear_window(sizes->mlx, sizes->win);
	if (sizes->mod < 6)
		sizes->mod += 1;
	else
		sizes->mod += 2;
	draw(sizes);
}
Esempio n. 27
0
void	check_keycode1(int keycode, t_env *e)
{
	if (keycode == 53 || keycode == 123 || keycode == 124 ||
			keycode == 125 || keycode == 126 || keycode == 12 ||
			keycode == 13 || keycode == 0 || keycode == 1 ||
			keycode == 78 || keycode == 69 || keycode == 6 ||
			keycode == 7 || keycode == 8 || keycode == 9 ||
			keycode == 18 || keycode == 19 || keycode == 20)
		mlx_clear_window(e->mlx, e->win);
}
Esempio n. 28
0
File: mainator.c Progetto: gabfou/RT
static int	key_hook(int keycode, t_env *e)
{
	if (keycode == 53)
	{
		mlx_clear_window(e->mlx, e->win);
		mlx_destroy_window(e->mlx, e->win);
		exit(0);
	}
	return (0);
}
Esempio n. 29
0
int			expose_hook(t_env *e)
{
	clear_image(e);
	pos_in_map(e);
	wall_dist(e);
	mlx_clear_window(e->mlx, e->win);
	mlx_put_image_to_window(e->mlx, e->win, e->img.i, 0, 0);
	put_visor(e);
	return (0);
}
Esempio n. 30
0
void			change_color(t_mlx *list)
{
	list->color = list->color + 0x0F0F0F;
	mlx_clear_window(list->mlx, list->win);
	mlx_destroy_image(list->mlx, list->link);
	*list = ft_create_image(*list);
	ft_try(*list);
	mlx_put_image_to_window(list->mlx, list->win, list->link,
			list->pos_x_image, list->pos_y_image);
}