diff --git a/2.png b/2.png index 3a7fb18000664fba3baef0a35e31cfb2a334eef0..24b900339dda480fc8be86d08cbd153dc1bd03d3 100644 Binary files a/2.png and b/2.png differ diff --git a/camera.h b/camera.h index 020842d1fc9fd5cc5a4abc8bee496900d34a832f..e24229f4378666fdc009f9eaad862c089c1e8c97 100644 --- a/camera.h +++ b/camera.h @@ -37,7 +37,7 @@ class Camera * \brief Constructeur de Copie * * Constructeur de Copie de la classe Camera - * \param <r> référence d'une camera + * \param <r> référence d'une Camera */ Camera(const Camera & r); @@ -57,7 +57,7 @@ class Camera }; /*! - * \brief Opérateur d'affichage des paramètres de la camera + * \brief Opérateur d'affichage des paramètres de la Camera */ std::ostream & operator<<(std::ostream & st, const Camera & c); diff --git a/main b/main index df7399bd0799f2a7ad65fde3e4325f0303412170..d1134e4b09b2ef52ca9629d51f89e5e1a9ebb6be 100755 Binary files a/main and b/main differ diff --git a/material.h b/material.h index 26bfd8ec359daa34fa6720aebf047c04ea4cdf9e..f7ec065816ab580ea8375865518517c54b3a49e2 100644 --- a/material.h +++ b/material.h @@ -41,7 +41,7 @@ class Material * * Constructeur de copie de la classe Material * - * \param <Material & m> reference à un autre matériau + * \param <Material & m> référence à un autre matériau */ Material(const Material & m); diff --git a/quad.h b/quad.h index 5b3634f0cd640011795d2d8ff0820ecbc14a590a..8332aef5719760d48b46f40beeb37e0f4df6de7f 100644 --- a/quad.h +++ b/quad.h @@ -13,7 +13,7 @@ * \class Quad * \brief Représentation des Parallélépipèdes rectangles * - * Classe derivant de Shape : Représentation des Parallélépipèdes rectangles par le centre du Parallélépipède, sa hauteur, sa largeur et sa longueur. + * Classe dérivant de Shape : Représentation des Parallélépipèdes rectangles par le centre du Parallélépipède, sa hauteur, sa largeur et sa longueur. */ class Quad : public Shape { @@ -30,7 +30,7 @@ class Quad : public Shape * * Constructeur de la classe Quad * Attention, si les paramètres de taille ne sont pas positifs le constructeur ne crée pas l'instance - * \param <matter> le materiau dont est fait le Quad + * \param <matter> le matériau dont est fait le Quad * \param <origin> le centre du Quad * \param <width> la largeur du Quad * \param <height> la hauteur du Quad diff --git a/scene.cpp b/scene.cpp index 5ea9a9e5f32d09b2d5a6715753a2bd96641f0c7d..c124ef86703f6bd6d87c7dde8f50e1350579ba5d 100644 --- a/scene.cpp +++ b/scene.cpp @@ -84,11 +84,14 @@ void Scene::render(int width, int height, int nb_pixel_row, int nb_pixel_col, in float min_dist; float hit_dist; - int ref_max = 6; + int ref_max = 4; Ray3f *ray[ref_max]; float shine[ref_max-1]; float coef[ref_max-1]; + bool shadow; + float intensity; + for (int i=nb_pixel_col-1; i>=0; i--) //on remplit l'image par le bas à droite { @@ -114,7 +117,7 @@ void Scene::render(int width, int height, int nb_pixel_row, int nb_pixel_col, in if (k != -1) { Ray3f reflected(shapes_[k]->reflect(*ray[r])); - bool shadow = false; + shadow = false; Ray3f reflect_to_source(reflected.origin(), source_.origin()-reflected.origin()); @@ -131,7 +134,7 @@ void Scene::render(int width, int height, int nb_pixel_row, int nb_pixel_col, in } //intensité pour harmoniser les ombres selon la distance - float intensity = dist(reflected.origin(), source_.origin()); + intensity = dist(reflected.origin(), source_.origin()); intensity = 5000/(intensity*intensity); if (shadow) diff --git a/scene.h b/scene.h index d12bb8c6d59dcecaff85e5b97d20606af3a83450..3ce723a21fa51a4dc6b71c05df60cade19e57fd4 100644 --- a/scene.h +++ b/scene.h @@ -14,7 +14,7 @@ * \class Scene * \brief Classe permettant le rendu de la scène * - * Contient toutes les informations pour pouvoir faire le rendu: la camera, la lumière, et la liste des pointeurs sur les formes + * Contient toutes les informations pour pouvoir faire le rendu: la caméra, la lumière, et la liste des pointeurs sur les formes */ class Scene { @@ -26,7 +26,6 @@ class Scene public: Scene(Camera camera, Shape* *shapes, Ray3f source); Scene(const Scene & s); - //~Scene(); Camera camera() const; Shape* *shapes() const; @@ -39,7 +38,5 @@ class Scene }; -//std::ostream & operator<<(std::ostream & st, const Scene & s); - #endif diff --git a/shape.h b/shape.h index 4f6acb769b480ba132dc685170b4552cf3f0f090..dcf697a65cf58bb9c6f858c21b6fe485ea455c2e 100644 --- a/shape.h +++ b/shape.h @@ -3,7 +3,7 @@ /*! * \file shapes.h - * \brief Implémentation abstraite des formes 3d + * \brief Implémentation abstraite des formes en 3D */ #include "ray3f.h" @@ -11,7 +11,7 @@ /*! * \class Shape - * \brief Classe abstraite des formes 3d + * \brief Classe abstraite des formes en 3D * * Classe abstraite pure dont héritent les autres formes géométriques */ @@ -33,16 +33,16 @@ class Shape /*! * \brief Test d'intersection * - * Methode permetant de savoir si le rayon touche l'objet ou non + * Methode permettant de savoir si le rayon touche l'objet ou non * \param ray Le rayon de lumière que l'on doit vérifier s'il touche l'objet ou non * \return bool */ virtual bool is_hit(const Ray3f ray) = 0; /*! - * \brief Récuperation du rayon réfléchi + * \brief Récupération du rayon réfléchi * - * Methode permetant de savoir le point d'origine du rayon réfléchi et ça direction + * Méthode permettant de savoir le point d'origine du rayon réfléchi et sa direction * \param ray Le rayon de lumière qui doit traverser l'objet * \return Ray3f */ diff --git a/sphere.h b/sphere.h index a2e7c2c62cbeb6dd9142c8e4b5a63b88b39dd263..f3def2e1d63179f63570c03efb64282b928642a6 100644 --- a/sphere.h +++ b/sphere.h @@ -3,16 +3,16 @@ /*! * \file sphere.h - * \brief Implementation des spheres + * \brief Implémentation des sphères */ #include "shape.h" /*! * \class Sphere - * \brief Classe representant une sphere + * \brief Classe représentant une sphère * - * Sphere representee dans l'espace par son centre et son rayon + * Sphere représentée dans l'espace par son centre et son rayon */ class Sphere : public Shape @@ -26,9 +26,9 @@ class Sphere : public Shape * \brief Constructeur * * Constructeur de la classe Sphere - * \param <matter> le materiau dont la sphere est composee - * \param <origin> le centre de la sphere - * \param <radius> le rayon de la sphere + * \param <matter> le matériau dont la sphère est composée + * \param <origin> le centre de la sphère + * \param <radius> le rayon de la sphère */ Sphere(Material matter, Vector3f origin, float radius); diff --git a/valgrind-out.txt b/valgrind-out.txt new file mode 100644 index 0000000000000000000000000000000000000000..9a3b13cb5bb51fdaf777f25c6cb0e0bdb6d7e138 --- /dev/null +++ b/valgrind-out.txt @@ -0,0 +1,305 @@ +==13027== Memcheck, a memory error detector +==13027== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. +==13027== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info +==13027== Command: ./main +==13027== Parent PID: 12751 +==13027== +--13027-- +--13027-- Valgrind options: +--13027-- --leak-check=full +--13027-- --show-leak-kinds=all +--13027-- --track-origins=yes +--13027-- --verbose +--13027-- --log-file=valgrind-out.txt +--13027-- Contents of /proc/version: +--13027-- 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 +--13027-- +--13027-- Arch and hwcaps: AMD64, LittleEndian, amd64-cx16-lzcnt-rdtscp-sse3-avx-avx2-bmi +--13027-- Page sizes: currently 4096, max supported 4096 +--13027-- Valgrind library directory: /usr/lib/valgrind +--13027-- Reading syms from /home/acheroufkebir/PAP/pap_ray_tracing_final/main +--13027-- Reading syms from /lib/x86_64-linux-gnu/ld-2.27.so +--13027-- Considering /lib/x86_64-linux-gnu/ld-2.27.so .. +--13027-- .. CRC mismatch (computed 1b7c895e wanted 2943108a) +--13027-- Considering /usr/lib/debug/lib/x86_64-linux-gnu/ld-2.27.so .. +--13027-- .. CRC is valid +--13027-- Reading syms from /usr/lib/valgrind/memcheck-amd64-linux +--13027-- Considering /usr/lib/valgrind/memcheck-amd64-linux .. +--13027-- .. CRC mismatch (computed 41ddb025 wanted 9972f546) +--13027-- object doesn't have a symbol table +--13027-- object doesn't have a dynamic symbol table +--13027-- Scheduler: using generic scheduler lock implementation. +--13027-- Reading suppressions file: /usr/lib/valgrind/default.supp +==13027== embedded gdbserver: reading from /tmp/vgdb-pipe-from-vgdb-to-13027-by-acheroufkebir-on-??? +==13027== embedded gdbserver: writing to /tmp/vgdb-pipe-to-vgdb-from-13027-by-acheroufkebir-on-??? +==13027== embedded gdbserver: shared mem /tmp/vgdb-pipe-shared-mem-vgdb-13027-by-acheroufkebir-on-??? +==13027== +==13027== TO CONTROL THIS PROCESS USING vgdb (which you probably +==13027== don't want to do, unless you know exactly what you're doing, +==13027== or are doing some strange experiment): +==13027== /usr/lib/valgrind/../../bin/vgdb --pid=13027 ...command... +==13027== +==13027== TO DEBUG THIS PROCESS USING GDB: start GDB like this +==13027== /path/to/gdb ./main +==13027== and then give GDB the following command +==13027== target remote | /usr/lib/valgrind/../../bin/vgdb --pid=13027 +==13027== --pid is optional if only one valgrind process is running +==13027== +--13027-- REDIR: 0x401f2f0 (ld-linux-x86-64.so.2:strlen) redirected to 0x580608c1 (???) +--13027-- REDIR: 0x401f0d0 (ld-linux-x86-64.so.2:index) redirected to 0x580608db (???) +--13027-- Reading syms from /usr/lib/valgrind/vgpreload_core-amd64-linux.so +--13027-- Considering /usr/lib/valgrind/vgpreload_core-amd64-linux.so .. +--13027-- .. CRC mismatch (computed 50df1b30 wanted 4800a4cf) +--13027-- object doesn't have a symbol table +--13027-- Reading syms from /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so +--13027-- Considering /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so .. +--13027-- .. CRC mismatch (computed f893b962 wanted 95ee359e) +--13027-- object doesn't have a symbol table +==13027== WARNING: new redirection conflicts with existing -- ignoring it +--13027-- old: 0x0401f2f0 (strlen ) R-> (0000.0) 0x580608c1 ??? +--13027-- new: 0x0401f2f0 (strlen ) R-> (2007.0) 0x04c32db0 strlen +--13027-- REDIR: 0x401d360 (ld-linux-x86-64.so.2:strcmp) redirected to 0x4c33ee0 (strcmp) +--13027-- REDIR: 0x401f830 (ld-linux-x86-64.so.2:mempcpy) redirected to 0x4c374f0 (mempcpy) +--13027-- Reading syms from /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0 +--13027-- object doesn't have a symbol table +--13027-- Reading syms from /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25 +--13027-- object doesn't have a symbol table +--13027-- Reading syms from /lib/x86_64-linux-gnu/libm-2.27.so +--13027-- Considering /lib/x86_64-linux-gnu/libm-2.27.so .. +--13027-- .. CRC mismatch (computed 7feae033 wanted b29b2508) +--13027-- Considering /usr/lib/debug/lib/x86_64-linux-gnu/libm-2.27.so .. +--13027-- .. CRC is valid +--13027-- Reading syms from /lib/x86_64-linux-gnu/libgcc_s.so.1 +--13027-- object doesn't have a symbol table +--13027-- Reading syms from /lib/x86_64-linux-gnu/libc-2.27.so +--13027-- Considering /lib/x86_64-linux-gnu/libc-2.27.so .. +--13027-- .. CRC mismatch (computed b1c74187 wanted 042cc048) +--13027-- Considering /usr/lib/debug/lib/x86_64-linux-gnu/libc-2.27.so .. +--13027-- .. CRC is valid +--13027-- Reading syms from /lib/x86_64-linux-gnu/libz.so.1.2.11 +--13027-- object doesn't have a symbol table +--13027-- REDIR: 0x5a4bc70 (libc.so.6:memmove) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4ad40 (libc.so.6:strncpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4bf50 (libc.so.6:strcasecmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4a790 (libc.so.6:strcat) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4ad70 (libc.so.6:rindex) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4d7c0 (libc.so.6:rawmemchr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4bde0 (libc.so.6:mempcpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4bc10 (libc.so.6:bcmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4ad00 (libc.so.6:strncmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4a800 (libc.so.6:strcmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4bd40 (libc.so.6:memset) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a690f0 (libc.so.6:wcschr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4aca0 (libc.so.6:strnlen) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4a870 (libc.so.6:strcspn) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4bfa0 (libc.so.6:strncasecmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4a840 (libc.so.6:strcpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4c0e0 (libc.so.6:memcpy@@GLIBC_2.14) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4ada0 (libc.so.6:strpbrk) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4a7c0 (libc.so.6:index) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4ac70 (libc.so.6:strlen) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a556c0 (libc.so.6:memrchr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4bff0 (libc.so.6:strcasecmp_l) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4bbe0 (libc.so.6:memchr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a69eb0 (libc.so.6:wcslen) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4b050 (libc.so.6:strspn) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4bf20 (libc.so.6:stpncpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4bef0 (libc.so.6:stpcpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4d7f0 (libc.so.6:strchrnul) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5a4c040 (libc.so.6:strncasecmp_l) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5ade8a0 (libc.so.6:__memcpy_chk) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--13027-- REDIR: 0x5b3b3c0 (libc.so.6:__strrchr_avx2) redirected to 0x4c32730 (rindex) +--13027-- REDIR: 0x5a44070 (libc.so.6:malloc) redirected to 0x4c2faa0 (malloc) +--13027-- REDIR: 0x5b3b590 (libc.so.6:__strlen_avx2) redirected to 0x4c32cf0 (strlen) +--13027-- REDIR: 0x5b37ba0 (libc.so.6:__memcmp_avx2_movbe) redirected to 0x4c35e00 (bcmp) +--13027-- REDIR: 0x5b16d60 (libc.so.6:__strcmp_ssse3) redirected to 0x4c33da0 (strcmp) +--13027-- REDIR: 0x5101190 (libstdc++.so.6:operator new(unsigned long)) redirected to 0x4c30110 (operator new(unsigned long)) +--13027-- REDIR: 0x5b3bad0 (libc.so.6:__memcpy_avx_unaligned_erms) redirected to 0x4c366e0 (memmove) +--13027-- REDIR: 0x5a4b590 (libc.so.6:__GI_strstr) redirected to 0x4c37760 (__strstr_sse2) +--13027-- REDIR: 0x5b3bab0 (libc.so.6:__mempcpy_avx_unaligned_erms) redirected to 0x4c37130 (mempcpy) +--13027-- REDIR: 0x5b3bf50 (libc.so.6:__memset_avx2_unaligned_erms) redirected to 0x4c365d0 (memset) +--13027-- REDIR: 0x50ff310 (libstdc++.so.6:operator delete[](void*)) redirected to 0x4c316d0 (operator delete[](void*)) +==13027== Mismatched free() / delete / delete [] +==13027== at 0x4C3173B: operator delete[](void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x10E215: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10F25F: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== Address 0x5fcf910 is 0 bytes inside a block of size 24 alloc'd +==13027== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x10D0B5: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10F25F: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== +--13027-- REDIR: 0x5a44950 (libc.so.6:free) redirected to 0x4c30cd0 (free) +==13027== Mismatched free() / delete / delete [] +==13027== at 0x4C3173B: operator delete[](void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x10F2D8: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== Address 0x5fccc80 is 0 bytes inside a block of size 48 alloc'd +==13027== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x10EB44: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== +--13027-- REDIR: 0x50ff2e0 (libstdc++.so.6:operator delete(void*)) redirected to 0x4c311d0 (operator delete(void*)) +==13027== +==13027== HEAP SUMMARY: +==13027== in use at exit: 157,666 bytes in 287 blocks +==13027== total heap usage: 332 allocs, 45 frees, 237,202 bytes allocated +==13027== +==13027== Searching for pointers to 287 not-freed blocks +==13027== Checked 119,384 bytes +==13027== +==13027== 30 bytes in 1 blocks are definitely lost in loss record 1 of 15 +==13027== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x10CDE5: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10F25F: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== +==13027== 31 bytes in 1 blocks are indirectly lost in loss record 2 of 15 +==13027== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E613B3: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E5C84B: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10F25F: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== +==13027== 31 bytes in 1 blocks are indirectly lost in loss record 3 of 15 +==13027== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E614A2: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E5C84B: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10F25F: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== +==13027== 31 bytes in 1 blocks are indirectly lost in loss record 4 of 15 +==13027== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E614E3: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E5C84B: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10F25F: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== +==13027== 31 bytes in 1 blocks are indirectly lost in loss record 5 of 15 +==13027== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E46E08: png_calloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E61419: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E5C84B: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10F25F: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== +==13027== 360 bytes in 1 blocks are definitely lost in loss record 6 of 15 +==13027== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x4E40F32: png_create_info_struct (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x10CCC6: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10F25F: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== +==13027== 2,048 bytes in 1 blocks are indirectly lost in loss record 7 of 15 +==13027== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x5DA5E9E: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11) +==13027== by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10F25F: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== +==13027== 2,048 bytes in 1 blocks are indirectly lost in loss record 8 of 15 +==13027== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x5DA5EB1: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11) +==13027== by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10F25F: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== +==13027== 2,160 bytes in 90 blocks are definitely lost in loss record 9 of 15 +==13027== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x10D0B5: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10F25F: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== +==13027== 4,416 bytes in 184 blocks are definitely lost in loss record 10 of 15 +==13027== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x10E5DF: Scene::reflected_rays(Ray3f**, int, int, float*) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10D0FD: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10F25F: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== +==13027== 5,952 bytes in 1 blocks are indirectly lost in loss record 11 of 15 +==13027== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x5DA5E14: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11) +==13027== by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10F25F: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== +==13027== 8,200 bytes in 1 blocks are indirectly lost in loss record 12 of 15 +==13027== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x4E46DDD: png_malloc (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E5FCFE: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10F25F: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== +==13027== 65,536 bytes in 1 blocks are indirectly lost in loss record 13 of 15 +==13027== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x5DA5EC7: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11) +==13027== by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10F25F: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== +==13027== 65,536 bytes in 1 blocks are indirectly lost in loss record 14 of 15 +==13027== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x5DA5EF6: deflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.11) +==13027== by 0x4E5EDF0: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E5FA92: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E61B45: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E5C981: png_write_row (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x10E1CB: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10F25F: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== +==13027== 150,700 (1,256 direct, 149,444 indirect) bytes in 1 blocks are definitely lost in loss record 15 of 15 +==13027== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x4E46E81: png_malloc_warn (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E40E8F: ??? (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E5C74C: png_create_write_struct_2 (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x4E5C7F0: png_create_write_struct (in /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0) +==13027== by 0x10CC6D: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10F25F: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== +==13027== LEAK SUMMARY: +==13027== definitely lost: 8,222 bytes in 277 blocks +==13027== indirectly lost: 149,444 bytes in 10 blocks +==13027== possibly lost: 0 bytes in 0 blocks +==13027== still reachable: 0 bytes in 0 blocks +==13027== suppressed: 0 bytes in 0 blocks +==13027== +==13027== ERROR SUMMARY: 43 errors from 7 contexts (suppressed: 0 from 0) +==13027== +==13027== 8 errors in context 1 of 7: +==13027== Mismatched free() / delete / delete [] +==13027== at 0x4C3173B: operator delete[](void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x10F2D8: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== Address 0x5fccc80 is 0 bytes inside a block of size 48 alloc'd +==13027== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x10EB44: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== +==13027== +==13027== 30 errors in context 2 of 7: +==13027== Mismatched free() / delete / delete [] +==13027== at 0x4C3173B: operator delete[](void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x10E215: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10F25F: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== Address 0x5fcf910 is 0 bytes inside a block of size 24 alloc'd +==13027== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==13027== by 0x10D0B5: Scene::render(int, int, int, int, int, char*, int, bool) (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== by 0x10F25F: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) +==13027== +==13027== ERROR SUMMARY: 43 errors from 7 contexts (suppressed: 0 from 0) diff --git a/vector3f.h b/vector3f.h index b6ba1e3045bf52b45cdab965399061b76d95fde6..242e9857d2cae588dbb744adf1d69dc1199a579a 100644 --- a/vector3f.h +++ b/vector3f.h @@ -4,7 +4,7 @@ /*! * \file vector3f.h - * \brief Implémentation des vecteurs 3D + * \brief Implémentation des vecteurs 3D */ #include <ostream> @@ -16,7 +16,7 @@ * \class Vector3f * \brief Classe représentant un vecteur dans l'espace * - * La classe permet de générer des vecteur et de réaliser des calculs sur ceux-ci + * La classe permet de générer des vecteurs et de réaliser des calculs sur ceux-ci */ class Vector3f { @@ -41,7 +41,7 @@ class Vector3f * \brief Constructeur de copie * * Constructeur de copie de la classe Vector3f - * \param v le vecteur à copier dans this + * \param v le vecteur à copier dans this */ Vector3f(const Vector3f & v); Vector3f();