diff --git a/main b/main
index f13719644144ca950b95e06530b535eaaa152f85..9c0fd7cc8406ef6e3f1a281a21aa3bdc52296541 100755
Binary files a/main and b/main differ
diff --git a/main.cpp b/main.cpp
index cc456e34b61cee1bf8a5cbde55d3096f7732cb23..85b90213a252ea851ddbf8442dd5e8b13dcf9d67 100644
--- a/main.cpp
+++ b/main.cpp
@@ -57,7 +57,7 @@ int main()
 		std::string filename3 = "ray_tracing_shading.png";
 		scene.render(width, height, 1080, 1080, nb_shapes, (char *) filename.c_str(),2,false);
 		scene.render(width, height, 1080, 1080, nb_shapes, (char *) filename2.c_str(),6,false);
-		scene.render(width, height, 1080, 1080, nb_shapes, (char *) filename3.c_str(),6,true);
+		scene.render(width, height, 1080, 1080, nb_shapes, (char *) filename3.c_str(),4,true);
 		std::cout << "Image sauvegardée" << std::endl;
 
 		//----------LIBERATION DE LA MEMOIRE----------
diff --git a/ray_tracing_reflexion.png b/ray_tracing_reflexion.png
index 994bbabce981f991ca928ce687613f7293768118..edac24bd224a9270b85b8594e70c723b8cc57506 100644
Binary files a/ray_tracing_reflexion.png and b/ray_tracing_reflexion.png differ
diff --git a/ray_tracing_shading.png b/ray_tracing_shading.png
index f450a84d5be5328554e67d04cb16eb231d22974d..50cf0b5eed249c88d6b1a44050fcee07931ead24 100644
Binary files a/ray_tracing_shading.png and b/ray_tracing_shading.png differ
diff --git a/scene.cpp b/scene.cpp
index 0b7faeedc96e76c4d353f9f2c62f170d68228561..9eb19f2132b33f07594f36021ad094529901d352 100644
--- a/scene.cpp
+++ b/scene.cpp
@@ -93,6 +93,7 @@ void Scene::render(int width, int height, int nb_pixel_row, int nb_pixel_col, in
 	Vector3f N;
 
 
+
 	for (int i=nb_pixel_col-1; i>=0; i--) //on remplit l'image par le bas à droite
 	{
 		for (int j=0; j<nb_pixel_row; j++)
@@ -181,18 +182,29 @@ void Scene::render(int width, int height, int nb_pixel_row, int nb_pixel_col, in
 					}
 				}
 			}
+
+			for (int r=0; r<ref_max;r++)
+				delete[] ray[r];	
 		}
 
+
 		png_write_row(png_ptr, row);
 
-		for (int r=0; r<ref_max;r++)
-			delete[] ray[r];
 	}
 
+	
+	png_free(png_ptr,row);
+
 	png_write_end(png_ptr, NULL);
 
+	png_destroy_write_struct(&png_ptr, &info_ptr);
+
+	
+
 
 	fclose(f);
+
+	f=NULL;
 }
 
 
@@ -243,6 +255,7 @@ void Scene::reflected_rays(Ray3f **ray, int nb_shapes, int ref_max,  float* shin
 
 	for(int r=0;r<(ref_max-1);r++)
 	{
+		Ray3f current_Ray=Ray3f(Vector3f(0,0,0),Vector3f(0,0,0));
 		min_dist=1000;
 		for (int k=0; k<nb_shapes; k++)
 		{
@@ -257,13 +270,14 @@ void Scene::reflected_rays(Ray3f **ray, int nb_shapes, int ref_max,  float* shin
 				{
 					min_dist = hit_dist;
 
-					ray[r+1] = new Ray3f(reflected);
+					current_Ray =Ray3f(reflected);
 
 					shine[r] = shapes_[k]->matter().shiness();
 	
 				}
 			}
 		}
+		ray[r+1] =new Ray3f(current_Ray);
 	}
 }
 
diff --git a/valgrind-out.txt b/valgrind-out.txt
index 83c86ed61288d71dab41e78e806c15af7b80fd3e..e93dd0339c5727bcf92272d04de7dff546bdba1f 100644
--- a/valgrind-out.txt
+++ b/valgrind-out.txt
@@ -1,654 +1,168 @@
-==11822== Memcheck, a memory error detector
-==11822== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
-==11822== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
-==11822== Command: ./main
-==11822== Parent PID: 10617
-==11822== 
---11822-- 
---11822-- Valgrind options:
---11822--    --leak-check=full
---11822--    --show-leak-kinds=all
---11822--    --track-origins=yes
---11822--    --verbose
---11822--    --log-file=valgrind-out.txt
---11822-- Contents of /proc/version:
---11822--   Linux version 4.15.0-48-generic (buildd@lgw01-amd64-036) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #51-Ubuntu SMP Wed Apr 3 08:28:49 UTC 2019
---11822-- 
---11822-- Arch and hwcaps: AMD64, LittleEndian, amd64-cx16-lzcnt-rdtscp-sse3-avx-avx2-bmi
---11822-- Page sizes: currently 4096, max supported 4096
---11822-- Valgrind library directory: /usr/lib/valgrind
---11822-- Reading syms from /home/acheroufkebir/PAP/pap_ray_tracing_final/main
---11822-- Reading syms from /lib/x86_64-linux-gnu/ld-2.27.so
---11822--   Considering /lib/x86_64-linux-gnu/ld-2.27.so ..
---11822--   .. CRC mismatch (computed 1b7c895e wanted 2943108a)
---11822--   Considering /usr/lib/debug/lib/x86_64-linux-gnu/ld-2.27.so ..
---11822--   .. CRC is valid
---11822-- Reading syms from /usr/lib/valgrind/memcheck-amd64-linux
---11822--   Considering /usr/lib/valgrind/memcheck-amd64-linux ..
---11822--   .. CRC mismatch (computed 41ddb025 wanted 9972f546)
---11822--    object doesn't have a symbol table
---11822--    object doesn't have a dynamic symbol table
---11822-- Scheduler: using generic scheduler lock implementation.
---11822-- Reading suppressions file: /usr/lib/valgrind/default.supp
-==11822== embedded gdbserver: reading from /tmp/vgdb-pipe-from-vgdb-to-11822-by-acheroufkebir-on-???
-==11822== embedded gdbserver: writing to   /tmp/vgdb-pipe-to-vgdb-from-11822-by-acheroufkebir-on-???
-==11822== embedded gdbserver: shared mem   /tmp/vgdb-pipe-shared-mem-vgdb-11822-by-acheroufkebir-on-???
-==11822== 
-==11822== TO CONTROL THIS PROCESS USING vgdb (which you probably
-==11822== don't want to do, unless you know exactly what you're doing,
-==11822== or are doing some strange experiment):
-==11822==   /usr/lib/valgrind/../../bin/vgdb --pid=11822 ...command...
-==11822== 
-==11822== TO DEBUG THIS PROCESS USING GDB: start GDB like this
-==11822==   /path/to/gdb ./main
-==11822== and then give GDB the following command
-==11822==   target remote | /usr/lib/valgrind/../../bin/vgdb --pid=11822
-==11822== --pid is optional if only one valgrind process is running
-==11822== 
---11822-- REDIR: 0x401f2f0 (ld-linux-x86-64.so.2:strlen) redirected to 0x580608c1 (???)
---11822-- REDIR: 0x401f0d0 (ld-linux-x86-64.so.2:index) redirected to 0x580608db (???)
---11822-- Reading syms from /usr/lib/valgrind/vgpreload_core-amd64-linux.so
---11822--   Considering /usr/lib/valgrind/vgpreload_core-amd64-linux.so ..
---11822--   .. CRC mismatch (computed 50df1b30 wanted 4800a4cf)
---11822--    object doesn't have a symbol table
---11822-- Reading syms from /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so
---11822--   Considering /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so ..
---11822--   .. CRC mismatch (computed f893b962 wanted 95ee359e)
---11822--    object doesn't have a symbol table
-==11822== WARNING: new redirection conflicts with existing -- ignoring it
---11822--     old: 0x0401f2f0 (strlen              ) R-> (0000.0) 0x580608c1 ???
---11822--     new: 0x0401f2f0 (strlen              ) R-> (2007.0) 0x04c32db0 strlen
---11822-- REDIR: 0x401d360 (ld-linux-x86-64.so.2:strcmp) redirected to 0x4c33ee0 (strcmp)
---11822-- REDIR: 0x401f830 (ld-linux-x86-64.so.2:mempcpy) redirected to 0x4c374f0 (mempcpy)
---11822-- Reading syms from /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0
---11822--    object doesn't have a symbol table
---11822-- Reading syms from /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25
---11822--    object doesn't have a symbol table
---11822-- Reading syms from /lib/x86_64-linux-gnu/libm-2.27.so
---11822--   Considering /lib/x86_64-linux-gnu/libm-2.27.so ..
---11822--   .. CRC mismatch (computed 7feae033 wanted b29b2508)
---11822--   Considering /usr/lib/debug/lib/x86_64-linux-gnu/libm-2.27.so ..
---11822--   .. CRC is valid
---11822-- Reading syms from /lib/x86_64-linux-gnu/libgcc_s.so.1
---11822--    object doesn't have a symbol table
---11822-- Reading syms from /lib/x86_64-linux-gnu/libc-2.27.so
---11822--   Considering /lib/x86_64-linux-gnu/libc-2.27.so ..
---11822--   .. CRC mismatch (computed b1c74187 wanted 042cc048)
---11822--   Considering /usr/lib/debug/lib/x86_64-linux-gnu/libc-2.27.so ..
---11822--   .. CRC is valid
---11822-- Reading syms from /lib/x86_64-linux-gnu/libz.so.1.2.11
---11822--    object doesn't have a symbol table
---11822-- REDIR: 0x5a4bc70 (libc.so.6:memmove) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4ad40 (libc.so.6:strncpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4bf50 (libc.so.6:strcasecmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4a790 (libc.so.6:strcat) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4ad70 (libc.so.6:rindex) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4d7c0 (libc.so.6:rawmemchr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4bde0 (libc.so.6:mempcpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4bc10 (libc.so.6:bcmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4ad00 (libc.so.6:strncmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4a800 (libc.so.6:strcmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4bd40 (libc.so.6:memset) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a690f0 (libc.so.6:wcschr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4aca0 (libc.so.6:strnlen) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4a870 (libc.so.6:strcspn) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4bfa0 (libc.so.6:strncasecmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4a840 (libc.so.6:strcpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4c0e0 (libc.so.6:memcpy@@GLIBC_2.14) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4ada0 (libc.so.6:strpbrk) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4a7c0 (libc.so.6:index) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4ac70 (libc.so.6:strlen) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a556c0 (libc.so.6:memrchr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4bff0 (libc.so.6:strcasecmp_l) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4bbe0 (libc.so.6:memchr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a69eb0 (libc.so.6:wcslen) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4b050 (libc.so.6:strspn) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4bf20 (libc.so.6:stpncpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4bef0 (libc.so.6:stpcpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4d7f0 (libc.so.6:strchrnul) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5a4c040 (libc.so.6:strncasecmp_l) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5ade8a0 (libc.so.6:__memcpy_chk) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
---11822-- REDIR: 0x5b3b3c0 (libc.so.6:__strrchr_avx2) redirected to 0x4c32730 (rindex)
---11822-- REDIR: 0x5a44070 (libc.so.6:malloc) redirected to 0x4c2faa0 (malloc)
---11822-- REDIR: 0x5b3b590 (libc.so.6:__strlen_avx2) redirected to 0x4c32cf0 (strlen)
---11822-- REDIR: 0x5b37ba0 (libc.so.6:__memcmp_avx2_movbe) redirected to 0x4c35e00 (bcmp)
---11822-- REDIR: 0x5b16d60 (libc.so.6:__strcmp_ssse3) redirected to 0x4c33da0 (strcmp)
---11822-- REDIR: 0x5101190 (libstdc++.so.6:operator new(unsigned long)) redirected to 0x4c30110 (operator new(unsigned long))
---11822-- REDIR: 0x5b3bad0 (libc.so.6:__memcpy_avx_unaligned_erms) redirected to 0x4c366e0 (memmove)
---11822-- REDIR: 0x5a4b590 (libc.so.6:__GI_strstr) redirected to 0x4c37760 (__strstr_sse2)
---11822-- REDIR: 0x5b3bab0 (libc.so.6:__mempcpy_avx_unaligned_erms) redirected to 0x4c37130 (mempcpy)
---11822-- REDIR: 0x5b3bf50 (libc.so.6:__memset_avx2_unaligned_erms) redirected to 0x4c365d0 (memset)
---11822-- REDIR: 0x50ff310 (libstdc++.so.6:operator delete[](void*)) redirected to 0x4c316d0 (operator delete[](void*))
-==11822== Mismatched free() / delete / delete []
-==11822==    at 0x4C3173B: operator delete[](void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10E235: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==  Address 0x96fefc0 is 0 bytes inside a block of size 24 alloc'd
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10D0B5: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
---11822-- REDIR: 0x5a44950 (libc.so.6:free) redirected to 0x4c30cd0 (free)
-==11822== Mismatched free() / delete / delete []
-==11822==    at 0x4C3173B: operator delete[](void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10E235: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==  Address 0x12229120 is 0 bytes inside a block of size 24 alloc'd
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10D0B5: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== Mismatched free() / delete / delete []
-==11822==    at 0x4C3173B: operator delete[](void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10E235: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==  Address 0x1ad533a0 is 0 bytes inside a block of size 24 alloc'd
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10D0B5: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== Mismatched free() / delete / delete []
-==11822==    at 0x4C3173B: operator delete[](void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x110104: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==  Address 0x5fccc80 is 0 bytes inside a block of size 48 alloc'd
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10F8BF: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
---11822-- REDIR: 0x50ff2e0 (libstdc++.so.6:operator delete(void*)) redirected to 0x4c311d0 (operator delete(void*))
-==11822== 
-==11822== HEAP SUMMARY:
-==11822==     in use at exit: 88,068,768 bytes in 3,633,819 blocks
-==11822==   total heap usage: 3,633,852 allocs, 33 frees, 88,157,216 bytes allocated
-==11822== 
-==11822== Searching for pointers to 3,633,819 not-freed blocks
-==11822== Checked 119,672 bytes
-==11822== 
-==11822== 48 bytes in 2 blocks are still reachable in loss record 1 of 54
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10E5DF: Scene::reflected_rays(Ray3f**, int, int, float*) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10D0FD: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 48 bytes in 2 blocks are possibly lost in loss record 2 of 54
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10E5DF: Scene::reflected_rays(Ray3f**, int, int, float*) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10D0FD: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 72 bytes in 3 blocks are possibly lost in loss record 3 of 54
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10E5DF: Scene::reflected_rays(Ray3f**, int, int, float*) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10D0FD: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 72 bytes in 3 blocks are indirectly lost in loss record 4 of 54
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10D0B5: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 120 bytes in 5 blocks are possibly lost in loss record 5 of 54
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10D0B5: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 144 bytes in 6 blocks are indirectly lost in loss record 6 of 54
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10E5DF: Scene::reflected_rays(Ray3f**, int, int, float*) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10D0FD: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 144 bytes in 6 blocks are indirectly lost in loss record 7 of 54
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10E5DF: Scene::reflected_rays(Ray3f**, int, int, float*) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10D0FD: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 216 bytes in 9 blocks are indirectly lost in loss record 8 of 54
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10D0B5: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 216 bytes in 9 blocks are indirectly lost in loss record 9 of 54
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10E5DF: Scene::reflected_rays(Ray3f**, int, int, float*) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10D0FD: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 360 bytes in 1 blocks are definitely lost in loss record 10 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E40F32: png_create_info_struct (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10CCC6: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 360 bytes in 1 blocks are definitely lost in loss record 11 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E40F32: png_create_info_struct (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10CCC6: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 360 bytes in 1 blocks are definitely lost in loss record 12 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E40F32: png_create_info_struct (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10CCC6: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 1,620 bytes in 1 blocks are definitely lost in loss record 13 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10CDE5: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 1,620 bytes in 1 blocks are definitely lost in loss record 14 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10CDE5: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 1,620 bytes in 1 blocks are definitely lost in loss record 15 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10CDE5: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 1,621 bytes in 1 blocks are indirectly lost in loss record 16 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E613B3: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C84B: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 1,621 bytes in 1 blocks are indirectly lost in loss record 17 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E614A2: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C84B: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 1,621 bytes in 1 blocks are indirectly lost in loss record 18 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E614E3: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C84B: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 1,621 bytes in 1 blocks are indirectly lost in loss record 19 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E46E08: png_calloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61419: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C84B: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 1,621 bytes in 1 blocks are indirectly lost in loss record 20 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E613B3: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C84B: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 1,621 bytes in 1 blocks are indirectly lost in loss record 21 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E614A2: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C84B: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 1,621 bytes in 1 blocks are indirectly lost in loss record 22 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E614E3: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C84B: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 1,621 bytes in 1 blocks are indirectly lost in loss record 23 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E46E08: png_calloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61419: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C84B: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 1,621 bytes in 1 blocks are indirectly lost in loss record 24 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E613B3: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C84B: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 1,621 bytes in 1 blocks are indirectly lost in loss record 25 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E614A2: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C84B: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 1,621 bytes in 1 blocks are indirectly lost in loss record 26 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E614E3: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C84B: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 1,621 bytes in 1 blocks are indirectly lost in loss record 27 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E46E08: png_calloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61419: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C84B: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 5,952 bytes in 1 blocks are indirectly lost in loss record 28 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x5DA5E14: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11)
-==11822==    by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 5,952 bytes in 1 blocks are indirectly lost in loss record 29 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x5DA5E14: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11)
-==11822==    by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 5,952 bytes in 1 blocks are indirectly lost in loss record 30 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x5DA5E14: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11)
-==11822==    by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 8,200 bytes in 1 blocks are indirectly lost in loss record 31 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5FCFE: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 8,200 bytes in 1 blocks are indirectly lost in loss record 32 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5FCFE: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 8,200 bytes in 1 blocks are indirectly lost in loss record 33 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5FCFE: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 65,536 bytes in 1 blocks are indirectly lost in loss record 34 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x5DA5E9E: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11)
-==11822==    by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 65,536 bytes in 1 blocks are indirectly lost in loss record 35 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x5DA5EB1: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11)
-==11822==    by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 65,536 bytes in 1 blocks are indirectly lost in loss record 36 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x5DA5EC7: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11)
-==11822==    by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 65,536 bytes in 1 blocks are indirectly lost in loss record 37 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x5DA5EF6: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11)
-==11822==    by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 65,536 bytes in 1 blocks are indirectly lost in loss record 38 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x5DA5E9E: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11)
-==11822==    by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 65,536 bytes in 1 blocks are indirectly lost in loss record 39 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x5DA5EB1: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11)
-==11822==    by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 65,536 bytes in 1 blocks are indirectly lost in loss record 40 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x5DA5EC7: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11)
-==11822==    by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 65,536 bytes in 1 blocks are indirectly lost in loss record 41 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x5DA5EF6: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11)
-==11822==    by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 65,536 bytes in 1 blocks are indirectly lost in loss record 42 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x5DA5E9E: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11)
-==11822==    by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 65,536 bytes in 1 blocks are indirectly lost in loss record 43 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x5DA5EB1: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11)
-==11822==    by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 65,536 bytes in 1 blocks are indirectly lost in loss record 44 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x5DA5EC7: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11)
-==11822==    by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 65,536 bytes in 1 blocks are indirectly lost in loss record 45 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x5DA5EF6: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11)
-==11822==    by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 284,228 (1,256 direct, 282,972 indirect) bytes in 1 blocks are definitely lost in loss record 46 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E40E8F: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C74C: png_create_write_struct_2 (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C7F0: png_create_write_struct (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10CC6D: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 284,300 (1,256 direct, 283,044 indirect) bytes in 1 blocks are definitely lost in loss record 47 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E40E8F: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C74C: png_create_write_struct_2 (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C7F0: png_create_write_struct (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10CC6D: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 284,372 (1,256 direct, 283,116 indirect) bytes in 1 blocks are definitely lost in loss record 48 of 54
-==11822==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E40E8F: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C74C: png_create_write_struct_2 (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x4E5C7F0: png_create_write_struct (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0)
-==11822==    by 0x10CC6D: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 6,998,040 bytes in 291,585 blocks are definitely lost in loss record 49 of 54
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10D0B5: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 6,998,304 bytes in 291,596 blocks are definitely lost in loss record 50 of 54
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10D0B5: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 6,998,376 bytes in 291,599 blocks are definitely lost in loss record 51 of 54
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10D0B5: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 7,397,016 bytes in 308,209 blocks are definitely lost in loss record 52 of 54
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10E5DF: Scene::reflected_rays(Ray3f**, int, int, float*) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10D0FD: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 29,408,880 bytes in 1,225,370 blocks are definitely lost in loss record 53 of 54
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10E5DF: Scene::reflected_rays(Ray3f**, int, int, float*) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10D0FD: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 29,409,024 bytes in 1,225,376 blocks are definitely lost in loss record 54 of 54
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10E5DF: Scene::reflected_rays(Ray3f**, int, int, float*) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10D0FD: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== LEAK SUMMARY:
-==11822==    definitely lost: 87,219,348 bytes in 3,633,744 blocks
-==11822==    indirectly lost: 849,132 bytes in 63 blocks
-==11822==      possibly lost: 240 bytes in 10 blocks
-==11822==    still reachable: 48 bytes in 2 blocks
-==11822==         suppressed: 0 bytes in 0 blocks
-==11822== 
-==11822== ERROR SUMMARY: 40 errors from 22 contexts (suppressed: 0 from 0)
-==11822== 
-==11822== 2 errors in context 1 of 22:
-==11822== Mismatched free() / delete / delete []
-==11822==    at 0x4C3173B: operator delete[](void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10E235: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==  Address 0x96fefc0 is 0 bytes inside a block of size 24 alloc'd
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10D0B5: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x10FFDD: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 
-==11822== 6 errors in context 2 of 22:
-==11822== Mismatched free() / delete / delete []
-==11822==    at 0x4C3173B: operator delete[](void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10E235: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==  Address 0x1ad533a0 is 0 bytes inside a block of size 24 alloc'd
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10D0B5: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x11008B: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 
-==11822== 6 errors in context 3 of 22:
-==11822== Mismatched free() / delete / delete []
-==11822==    at 0x4C3173B: operator delete[](void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10E235: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==  Address 0x12229120 is 0 bytes inside a block of size 24 alloc'd
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10D0B5: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==    by 0x110034: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== 
-==11822== 8 errors in context 4 of 22:
-==11822== Mismatched free() / delete / delete []
-==11822==    at 0x4C3173B: operator delete[](void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x110104: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822==  Address 0x5fccc80 is 0 bytes inside a block of size 48 alloc'd
-==11822==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-==11822==    by 0x10F8BF: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
-==11822== 
-==11822== ERROR SUMMARY: 40 errors from 22 contexts (suppressed: 0 from 0)
+==15780== Memcheck, a memory error detector
+==15780== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15780== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15780== Command: ./main
+==15780== Parent PID: 12751
+==15780== 
+--15780-- 
+--15780-- Valgrind options:
+--15780--    --leak-check=full
+--15780--    --show-leak-kinds=all
+--15780--    --track-origins=yes
+--15780--    --verbose
+--15780--    --log-file=valgrind-out.txt
+--15780-- Contents of /proc/version:
+--15780--   Linux version 4.15.0-48-generic (buildd@lgw01-amd64-036) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #51-Ubuntu SMP Wed Apr 3 08:28:49 UTC 2019
+--15780-- 
+--15780-- Arch and hwcaps: AMD64, LittleEndian, amd64-cx16-lzcnt-rdtscp-sse3-avx-avx2-bmi
+--15780-- Page sizes: currently 4096, max supported 4096
+--15780-- Valgrind library directory: /usr/lib/valgrind
+--15780-- Reading syms from /home/acheroufkebir/PAP/pap_ray_tracing_final/main
+--15780-- Reading syms from /lib/x86_64-linux-gnu/ld-2.27.so
+--15780--   Considering /lib/x86_64-linux-gnu/ld-2.27.so ..
+--15780--   .. CRC mismatch (computed 1b7c895e wanted 2943108a)
+--15780--   Considering /usr/lib/debug/lib/x86_64-linux-gnu/ld-2.27.so ..
+--15780--   .. CRC is valid
+--15780-- Reading syms from /usr/lib/valgrind/memcheck-amd64-linux
+--15780--   Considering /usr/lib/valgrind/memcheck-amd64-linux ..
+--15780--   .. CRC mismatch (computed 41ddb025 wanted 9972f546)
+--15780--    object doesn't have a symbol table
+--15780--    object doesn't have a dynamic symbol table
+--15780-- Scheduler: using generic scheduler lock implementation.
+--15780-- Reading suppressions file: /usr/lib/valgrind/default.supp
+==15780== embedded gdbserver: reading from /tmp/vgdb-pipe-from-vgdb-to-15780-by-acheroufkebir-on-???
+==15780== embedded gdbserver: writing to   /tmp/vgdb-pipe-to-vgdb-from-15780-by-acheroufkebir-on-???
+==15780== embedded gdbserver: shared mem   /tmp/vgdb-pipe-shared-mem-vgdb-15780-by-acheroufkebir-on-???
+==15780== 
+==15780== TO CONTROL THIS PROCESS USING vgdb (which you probably
+==15780== don't want to do, unless you know exactly what you're doing,
+==15780== or are doing some strange experiment):
+==15780==   /usr/lib/valgrind/../../bin/vgdb --pid=15780 ...command...
+==15780== 
+==15780== TO DEBUG THIS PROCESS USING GDB: start GDB like this
+==15780==   /path/to/gdb ./main
+==15780== and then give GDB the following command
+==15780==   target remote | /usr/lib/valgrind/../../bin/vgdb --pid=15780
+==15780== --pid is optional if only one valgrind process is running
+==15780== 
+--15780-- REDIR: 0x401f2f0 (ld-linux-x86-64.so.2:strlen) redirected to 0x580608c1 (???)
+--15780-- REDIR: 0x401f0d0 (ld-linux-x86-64.so.2:index) redirected to 0x580608db (???)
+--15780-- Reading syms from /usr/lib/valgrind/vgpreload_core-amd64-linux.so
+--15780--   Considering /usr/lib/valgrind/vgpreload_core-amd64-linux.so ..
+--15780--   .. CRC mismatch (computed 50df1b30 wanted 4800a4cf)
+--15780--    object doesn't have a symbol table
+--15780-- Reading syms from /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so
+--15780--   Considering /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so ..
+--15780--   .. CRC mismatch (computed f893b962 wanted 95ee359e)
+--15780--    object doesn't have a symbol table
+==15780== WARNING: new redirection conflicts with existing -- ignoring it
+--15780--     old: 0x0401f2f0 (strlen              ) R-> (0000.0) 0x580608c1 ???
+--15780--     new: 0x0401f2f0 (strlen              ) R-> (2007.0) 0x04c32db0 strlen
+--15780-- REDIR: 0x401d360 (ld-linux-x86-64.so.2:strcmp) redirected to 0x4c33ee0 (strcmp)
+--15780-- REDIR: 0x401f830 (ld-linux-x86-64.so.2:mempcpy) redirected to 0x4c374f0 (mempcpy)
+--15780-- Reading syms from /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0
+--15780--    object doesn't have a symbol table
+--15780-- Reading syms from /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25
+--15780--    object doesn't have a symbol table
+--15780-- Reading syms from /lib/x86_64-linux-gnu/libm-2.27.so
+--15780--   Considering /lib/x86_64-linux-gnu/libm-2.27.so ..
+--15780--   .. CRC mismatch (computed 7feae033 wanted b29b2508)
+--15780--   Considering /usr/lib/debug/lib/x86_64-linux-gnu/libm-2.27.so ..
+--15780--   .. CRC is valid
+--15780-- Reading syms from /lib/x86_64-linux-gnu/libgcc_s.so.1
+--15780--    object doesn't have a symbol table
+--15780-- Reading syms from /lib/x86_64-linux-gnu/libc-2.27.so
+--15780--   Considering /lib/x86_64-linux-gnu/libc-2.27.so ..
+--15780--   .. CRC mismatch (computed b1c74187 wanted 042cc048)
+--15780--   Considering /usr/lib/debug/lib/x86_64-linux-gnu/libc-2.27.so ..
+--15780--   .. CRC is valid
+--15780-- Reading syms from /lib/x86_64-linux-gnu/libz.so.1.2.11
+--15780--    object doesn't have a symbol table
+--15780-- REDIR: 0x5a4bc70 (libc.so.6:memmove) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4ad40 (libc.so.6:strncpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4bf50 (libc.so.6:strcasecmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4a790 (libc.so.6:strcat) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4ad70 (libc.so.6:rindex) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4d7c0 (libc.so.6:rawmemchr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4bde0 (libc.so.6:mempcpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4bc10 (libc.so.6:bcmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4ad00 (libc.so.6:strncmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4a800 (libc.so.6:strcmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4bd40 (libc.so.6:memset) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a690f0 (libc.so.6:wcschr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4aca0 (libc.so.6:strnlen) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4a870 (libc.so.6:strcspn) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4bfa0 (libc.so.6:strncasecmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4a840 (libc.so.6:strcpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4c0e0 (libc.so.6:memcpy@@GLIBC_2.14) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4ada0 (libc.so.6:strpbrk) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4a7c0 (libc.so.6:index) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4ac70 (libc.so.6:strlen) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a556c0 (libc.so.6:memrchr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4bff0 (libc.so.6:strcasecmp_l) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4bbe0 (libc.so.6:memchr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a69eb0 (libc.so.6:wcslen) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4b050 (libc.so.6:strspn) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4bf20 (libc.so.6:stpncpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4bef0 (libc.so.6:stpcpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4d7f0 (libc.so.6:strchrnul) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5a4c040 (libc.so.6:strncasecmp_l) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5ade8a0 (libc.so.6:__memcpy_chk) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper)
+--15780-- REDIR: 0x5b3b3c0 (libc.so.6:__strrchr_avx2) redirected to 0x4c32730 (rindex)
+--15780-- REDIR: 0x5a44070 (libc.so.6:malloc) redirected to 0x4c2faa0 (malloc)
+--15780-- REDIR: 0x5b3b590 (libc.so.6:__strlen_avx2) redirected to 0x4c32cf0 (strlen)
+--15780-- REDIR: 0x5b37ba0 (libc.so.6:__memcmp_avx2_movbe) redirected to 0x4c35e00 (bcmp)
+--15780-- REDIR: 0x5b16d60 (libc.so.6:__strcmp_ssse3) redirected to 0x4c33da0 (strcmp)
+--15780-- REDIR: 0x5101190 (libstdc++.so.6:operator new(unsigned long)) redirected to 0x4c30110 (operator new(unsigned long))
+--15780-- REDIR: 0x5b3bad0 (libc.so.6:__memcpy_avx_unaligned_erms) redirected to 0x4c366e0 (memmove)
+--15780-- REDIR: 0x5a4b590 (libc.so.6:__GI_strstr) redirected to 0x4c37760 (__strstr_sse2)
+--15780-- REDIR: 0x5b3bab0 (libc.so.6:__mempcpy_avx_unaligned_erms) redirected to 0x4c37130 (mempcpy)
+--15780-- REDIR: 0x50ff310 (libstdc++.so.6:operator delete[](void*)) redirected to 0x4c316d0 (operator delete[](void*))
+==15780== Mismatched free() / delete / delete []
+==15780==    at 0x4C3173B: operator delete[](void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==15780==    by 0x10E23D: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
+==15780==    by 0x10F3B5: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
+==15780==  Address 0x5fcef50 is 0 bytes inside a block of size 24 alloc'd
+==15780==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==15780==    by 0x10D102: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
+==15780==    by 0x10F3B5: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
+==15780== 
+--15780-- REDIR: 0x5b3bf50 (libc.so.6:__memset_avx2_unaligned_erms) redirected to 0x4c365d0 (memset)
+--15780-- REDIR: 0x5a44950 (libc.so.6:free) redirected to 0x4c30cd0 (free)
+==15780== Mismatched free() / delete / delete []
+==15780==    at 0x4C3173B: operator delete[](void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==15780==    by 0x10F42E: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
+==15780==  Address 0x5fccc80 is 0 bytes inside a block of size 48 alloc'd
+==15780==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==15780==    by 0x10EC9A: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
+==15780== 
+--15780-- REDIR: 0x50ff2e0 (libstdc++.so.6:operator delete(void*)) redirected to 0x4c311d0 (operator delete(void*))
+==15780== 
+==15780== HEAP SUMMARY:
+==15780==     in use at exit: 0 bytes in 0 blocks
+==15780==   total heap usage: 228 allocs, 228 frees, 234,706 bytes allocated
+==15780== 
+==15780== All heap blocks were freed -- no leaks are possible
+==15780== 
+==15780== ERROR SUMMARY: 208 errors from 2 contexts (suppressed: 0 from 0)
+==15780== 
+==15780== 8 errors in context 1 of 2:
+==15780== Mismatched free() / delete / delete []
+==15780==    at 0x4C3173B: operator delete[](void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==15780==    by 0x10F42E: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
+==15780==  Address 0x5fccc80 is 0 bytes inside a block of size 48 alloc'd
+==15780==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==15780==    by 0x10EC9A: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
+==15780== 
+==15780== 
+==15780== 200 errors in context 2 of 2:
+==15780== Mismatched free() / delete / delete []
+==15780==    at 0x4C3173B: operator delete[](void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==15780==    by 0x10E23D: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
+==15780==    by 0x10F3B5: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
+==15780==  Address 0x5fcef50 is 0 bytes inside a block of size 24 alloc'd
+==15780==    at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==15780==    by 0x10D102: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
+==15780==    by 0x10F3B5: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main)
+==15780== 
+==15780== ERROR SUMMARY: 208 errors from 2 contexts (suppressed: 0 from 0)