89 lines
No EOL
1.3 KiB
C
89 lines
No EOL
1.3 KiB
C
#include "fdf.h"
|
|
|
|
void move(t_FDF *FDF)
|
|
{
|
|
recalculate_trnsf_matrs(FDF->map);
|
|
mat4_mult_chain(FDF);
|
|
transform(FDF->map->trnsf->fin, FDF->map);
|
|
mlx_destroy_image(FDF->mw->mlx, FDF->image);
|
|
FDF->image = mlx_new_image(FDF->mw->mlx, WIDTH, HEIGHT);
|
|
FDF->image_data = mlx_get_data_addr(
|
|
FDF->image,
|
|
&FDF->bpp,
|
|
&FDF->line_size,
|
|
&FDF->endian);
|
|
render(FDF);
|
|
}
|
|
|
|
void left_rot(t_FDF *FDF)
|
|
{
|
|
FDF->map->y_rot -= 1;
|
|
move(FDF);
|
|
}
|
|
|
|
void right_rot(t_FDF *FDF)
|
|
{
|
|
FDF->map->y_rot += 1;
|
|
move(FDF);
|
|
}
|
|
|
|
void forw_rot(t_FDF *FDF)
|
|
{
|
|
FDF->map->x_rot += 1;
|
|
move(FDF);
|
|
}
|
|
|
|
void back_rot(t_FDF *FDF)
|
|
{
|
|
FDF->map->x_rot -= 1;
|
|
move(FDF);
|
|
}
|
|
|
|
void clock_rot(t_FDF *FDF)
|
|
{
|
|
FDF->map->z_rot -= 1;
|
|
move(FDF);
|
|
}
|
|
|
|
void aclock_rot(t_FDF *FDF)
|
|
{
|
|
FDF->map->z_rot += 1;
|
|
move(FDF);
|
|
}
|
|
|
|
void scale_up_z(t_FDF *FDF)
|
|
{
|
|
FDF->map->scale[2] += 1.0f / 100 * 20;
|
|
move(FDF);
|
|
}
|
|
|
|
void scale_down_z(t_FDF *FDF)
|
|
{
|
|
FDF->map->scale[2] -= 1.0f / 100 * 20;
|
|
move(FDF);
|
|
}
|
|
|
|
void zoom_in(t_FDF *FDF)
|
|
{
|
|
FDF->map->scale[0] += 1.0f / 100 * 20;
|
|
FDF->map->scale[1] += 1.0f / 100 * 20;
|
|
move(FDF);
|
|
}
|
|
|
|
void zoom_out(t_FDF *FDF)
|
|
{
|
|
FDF->map->scale[0] -= 1.0f / 100 * 20;
|
|
FDF->map->scale[1] -= 1.0f / 100 * 20;
|
|
move(FDF);
|
|
}
|
|
|
|
void reset(t_FDF *FDF)
|
|
{
|
|
FDF->map->z_rot = 0;
|
|
FDF->map->y_rot = 0;
|
|
FDF->map->x_rot = 0;
|
|
FDF->map->scale[0] = 1;
|
|
FDF->map->scale[1] = 1;
|
|
FDF->map->scale[2] = 1;
|
|
move(FDF);
|
|
} |