diff --git a/inc/fdf.h b/inc/fdf.h index 2cc7991..2d2616c 100644 --- a/inc/fdf.h +++ b/inc/fdf.h @@ -22,37 +22,64 @@ # include "libft.h" # include "MLX42.h" -#define WRONG_LINE_LENGTH "Error: wrong line length. Expected %d, got %d in line nr %d\n" -#define MALLOC_ERROR "Error: malloc failed\n" -#define FILE_ERROR "Error: could not open file %s\n" -#define USAGE_ERROR "Usage: %s \n" +# define WRONG_LINE_LENGTH "Error: wrong line length. \ + Expected %d, got %d in line nr %d\n" +# define MALLOC_ERROR "Error: malloc failed\n" +# define FILE_ERROR "Error: could not open file %s\n" +# define USAGE_ERROR "Usage: %s \n" -#define WIDTH 1024 -#define HEIGHT 1024 +# define WIDTH 1500 +# define HEIGHT 1500 -typedef struct s_point +typedef struct s_point_3d { - double x; - double y; - double z; -} t_point; + double x; + double y; + double z; + int color; +} t_point_3d; + +typedef struct s_point_2d +{ + int x; + int y; + int color; +} t_point_2d; + typedef struct s_map { - t_point *points; + t_point_3d *points; + t_point_2d *projected; int width; int height; int z_max; } t_map; +typedef struct s_fdf +{ + t_map *map; + mlx_t *mlx; + mlx_image_t *img; + double angle_x; + double angle_y; + double angle_z; + double zoom; + int offset_x; + int offset_y; + double z_scale; +} t_fdf; + int get_map_sizes(char *filename, t_map *map); void free_line_and_split(char **line, char ***split); int read_map(char *filename, t_map *map); t_map *parse_map(char *filename); void print_map(t_map *map); -void rotate_x(t_point **points, double angle, int size); -void rotate_y(t_point **points, double angle, int size); -void rotate_z(t_point **points, double angle, int size); - +void rotate_x(t_point_3d **points, double angle, int size); +void rotate_y(t_point_3d **points, double angle, int size); +void rotate_z(t_point_3d **points, double angle, int size); +bool fdf_put_pixel(mlx_image_t *img, t_point_2d point); +void fdf_draw_line(mlx_image_t *img, t_point_2d start, + t_point_2d end); #endif