/* By: ljiriste <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/10/27 14:29:26 by ljiriste #+# #+# */
-/* Updated: 2024/04/25 09:42:33 by ljiriste ### ########.fr */
+/* Updated: 2024/04/25 11:44:39 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
void set_default(t_session *s)
{
+ s->img.width = 1920;
+ s->img.height = 1011;
+ s->img.undersample_max = 5;
+ s->set.detail = 1000;
s->view.fractal = mandelbrot;
s->view.palette = tri_color;
+ s->view.color_shift_speed = -0.001;
+ s->set.color_stability = 100;
s->view.pixel_size.x = 0.01;
s->view.pixel_size.y = 0.01;
- s->view.color_shift = 0.7;
- s->view.color_shift_speed = 0.01;
- s->set.detail = 1000;
- s->set.color_stability = 100;
- s->img.width = 1000;
- s->img.height = 1000;
- s->img.undersample_max = 5;
+ s->view.color_shift = 0;
return ;
}
return (NULL);
}
+int parse_arg(char **argv, t_session *s, int *i)
+{
+ if (!ft_strcmp(argv[*i], "-w") && ft_isint(argv[*i + 1]) && ft_atoi(argv[*i + 1]) > 0)
+ s->img.width = ft_atoi(argv[++*i]);
+ else if (!ft_strcmp(argv[*i], "-h") && ft_isint(argv[*i + 1]) && ft_atoi(argv[*i + 1]) > 0)
+ s->img.height = ft_atoi(argv[++*i]);
+ else if (!ft_strcmp(argv[*i], "-u") && ft_isint(argv[*i + 1]) && ft_atoi(argv[*i]) >= 0 )
+ s->img.undersample_max = ft_atoi(argv[++*i]);
+ else if (!ft_strcmp(argv[*i], "-d") && ft_isint(argv[*i + 1]))
+ s->set.detail = ft_atoi(argv[++*i]);
+ else if (!ft_strcmp(argv[*i], "-f") && to_fractal(argv[*i + 1]) != NULL)
+ s->view.fractal = to_fractal(argv[*i + 1]);
+ else if (!ft_strcmp(argv[*i], "-s") && ft_isint(argv[*i + 1]))
+ s->view.color_shift_speed = ft_atoi(argv[++*i]) / 1000.;
+ else if (!ft_strcmp(argv[*i], "-c") && ft_isint(argv[*i + 1]))
+ s->set.color_stability = 10000 / ft_atoi(argv[++*i]);
+ else
+ return (1);
+ return (0);
+}
+
int parse_args(int argc, char **argv, t_session *s)
{
int i;
i = 1;
while (i + 1 < argc)
{
- if (!ft_strcmp(argv[i], "-w") && ft_isint(argv[i + 1]))
- s->img.width = ft_atoi(argv[++i]);
- else if (!ft_strcmp(argv[i], "-h") && ft_isint(argv[i + 1]))
- s->img.height = ft_atoi(argv[++i]);
- else if (!ft_strcmp(argv[i], "-u") && ft_isint(argv[i + 1]))
- s->img.undersample_max = ft_atoi(argv[++i]);
- else if (!ft_strcmp(argv[i], "-d") && ft_isint(argv[i + 1]))
- s->set.detail = ft_atoi(argv[++i]);
- else if (!ft_strcmp(argv[i], "-f") && to_fractal(argv[i + 1]) != NULL)
- s->view.fractal = to_fractal(argv[i + 1]);
- else
+ if (parse_arg(argv, s, &i))
return (1);
++i;
}