|
6 | 6 | /* By: TheTerror <jfaye@student.42lyon.fr> +#+ +:+ +#+ */ |
7 | 7 | /* +#+#+#+#+#+ +#+ */ |
8 | 8 | /* Created: 2023/08/23 20:19:01 by TheTerror #+# #+# */ |
9 | | -/* Updated: 2023/09/08 16:21:52 by TheTerror ### ########lyon.fr */ |
| 9 | +/* Updated: 2024/01/25 23:21:38 by lmohin ### ########.fr */ |
10 | 10 | /* */ |
11 | 11 | /* ************************************************************************** */ |
12 | 12 |
|
13 | 13 | #include "inters.h" |
14 | 14 |
|
15 | 15 | double ft_ray_inter_sp_op(t_vars *v, t_sp *sp); |
16 | 16 |
|
17 | | -t_bool ft_ray_inter_sp(t_vars *v, t_sp *sp) |
| 17 | +t_bool ft_ray_inter_sp(t_vars *v, t_sp *sp, int x) |
18 | 18 | { |
19 | 19 | double s; |
20 | 20 |
|
21 | 21 | s = ft_ray_inter_sp_op(v, sp); |
22 | 22 | if (ft_assess_color(v, s)) |
| 23 | + { |
| 24 | + v->obj.type = 2; |
| 25 | + v->obj.index = x; |
23 | 26 | return (v->ray.color = ft_color(&sp->rgb), __TRUE); |
| 27 | + } |
24 | 28 | return (__FALSE); |
25 | 29 | } |
26 | 30 |
|
@@ -64,13 +68,18 @@ double ft_ray_inter_sp_op(t_vars *v, t_sp *sp) |
64 | 68 | delta = ft_sq(b) - (4 * a * c); |
65 | 69 | if (delta < 0) |
66 | 70 | return (delta); |
| 71 | +/* printf("dir: %f %f %f\n", v->ray.dir.x, v->ray.dir.y, v->ray.dir.z); |
| 72 | + printf("origin: %f %f %f\n", v->ray.o.x, v->ray.o.y, v->ray.o.z); |
| 73 | + printf("sp: %f %f %f\n", sp->o.x, sp->o.y, sp->o.z);*/ |
67 | 74 | s1 = (-b - sqrt(delta)) / (2 * a); |
68 | 75 | s2 = (-b + sqrt(delta)) / (2 * a); |
69 | 76 | return (ft_assessthesolution(s1, s2)); |
70 | 77 | } |
71 | 78 |
|
72 | 79 | double ft_assessthesolution(double s1, double s2) |
73 | 80 | { |
| 81 | +// printf("dist: %f %f\n", s1, s2); |
| 82 | +// exit(0); |
74 | 83 | if (s1 >= 0 && s2 >= 0) |
75 | 84 | { |
76 | 85 | if (s1 < s2) |
|
0 commit comments