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); }
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); }
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); }
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); }
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); }
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)); }
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); }
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); }
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); }
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) : ' '; }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }