From 4f6b0a3e2f9c5dff9e0ee73a6475a555267d53ed Mon Sep 17 00:00:00 2001 From: DBA_3 <yacine.acheroufkebir@gmail.com> Date: Thu, 9 Jan 2020 01:12:27 +0100 Subject: [PATCH] doxygene --- camera.h | 39 +++++++++++++++++++++++++++++++++++++-- material.h | 54 ++++++++++++++++++++++++++++++++++++++++++++++++------ ray3f.h | 34 +++++++++++++++++++++++++++++++--- scene.h | 13 ++++++++++++- 4 files changed, 128 insertions(+), 12 deletions(-) diff --git a/camera.h b/camera.h index 5eca3bc..77422ac 100644 --- a/camera.h +++ b/camera.h @@ -1,23 +1,58 @@ #ifndef CAMERA_H #define CAMERA_H + +/*! + * \file camera.h + * \brief Representation d'une camera, similaire a un rayon + */ + #include "vector3f.h" +/*! + * \class Camera + * \brief Classe représentant la caméra + * + * Représentation d'une caméra dans l'espace avec une implémentation similaire à Ray3f + */ class Camera { private: - Vector3f position_; - Vector3f direction_; + Vector3f position_; /*!< Position de la caméra */ + Vector3f direction_; /*!< Direction de la caméra */ public: + /*! + * \brief Constructeur + * + * Constructeur de la classe Camera + * \param <pos> la position de la caméra + * \param <dir> la direction de la caméra + */ Camera(const Vector3f & pos, const Vector3f & dir); + + /*! + * \brief Constructeur de Copie + * + * Constructeur de Copie de la classe Camera + * \param <r> référence d'une camera + */ Camera(const Camera & r); + //TODO// Camera & operator=(const Camera & r); + /*! + * \brief Getter de la position de la Camera + * retourne le Vector3f de la position de la Camera + */ Vector3f position() const; + /*! + * \brief Getter pour la direction de la Camera + * retourne le Vector3f de la direction de la Camera + */ Vector3f direction() const; }; diff --git a/material.h b/material.h index 7f3a044..7608bb6 100644 --- a/material.h +++ b/material.h @@ -4,26 +4,68 @@ #include <ostream> +/*! + * \file material.h + * \brief Représentation d'un matériau + */ + class Material { + /*! + * \class Material + * \brief Classe représentant un matériau + * + * La classe représente un matériau par sa couleur et sa brillance + */ private: - float r_; - float g_; - float b_; - float shiness_; + float r_; /*!< niveau de rouge valant entre 0 et 255 */ + float g_; /*!< niveau de vert valant entre 0 et 255 */ + float b_; /*!< niveau de bleu valant entre 0 et 255 */ + float shiness_; /*!< Brillance*/ public: + /*! + * \brief Constructeur + * + * Constructeur de la classe Material + * + * \param <r> niveau de Rouge de la couleur + * \param <g> niveau de Vert de la couleur + * \param <b> niveau de Bleu de la couleur + * \param <s> Brillance du matériau + */ Material(float r, float g, float b, float shiness); + /*! + * \brief Constructeur de Copie + * + * Constructeur de copie de la classe Material + * + * \param <Material &> reference à un autre matériau + */ Material(const Material &); - //~Material(); //nécessaire pour ce blaireau de yacine - + + /*! + * \brief Getter du niveau de rouge du matériau + */ float r() const; + /*! + * \brief Getter du niveau de vert du matériau + */ float g() const; + /*! + * \brief Getter du niveau de bleu du matériau + */ float b() const; + /*! + * \brief Getter de la brillance du matériau + */ float shiness() const; }; + /*! + * \brief Opérateur d'affichage des niveaux de couleur et de la brillance du matériau + */ std::ostream & operator<<(std::ostream & st, const Material & m); diff --git a/ray3f.h b/ray3f.h index 5ae4f47..eeb84d7 100644 --- a/ray3f.h +++ b/ray3f.h @@ -1,23 +1,51 @@ #ifndef RAY3F_H #define RAY3F_H - +/*! + * \file ray3f.h + * \brief Implémentation d'un rayon dans l'espace + */ #include "vector3f.h" +/*! + * \class Ray3f + * \brief Classe représentant un rayon dans l'espace + * + * Représente un rayon par son origine et sa direction + */ class Ray3f { private: - Vector3f origin_; - Vector3f direction_; + Vector3f origin_; /*!< Origine du rayon */ + Vector3f direction_; /*!< Direction du rayon */ public: + /*! + * \brief Constructeur + * + * Constructeur de la classe Ray3f + * \param <ori> Origine du rayon + * \param <dir> Direction du rayon + */ Ray3f(const Vector3f & ori, const Vector3f & dir); + /*! + * \brief Constructeur de Copie + * + * Constructeur de copie de la classe Ray3f + * \param <r> Référence vers un autre rayon + */ Ray3f(const Ray3f & r); Ray3f & operator=(const Ray3f & r); + /*! + * \brief Getter pour l'origine du rayon + */ Vector3f origin() const; + /*! + * \brief Getter pour la direction du rayon + */ Vector3f direction() const; }; diff --git a/scene.h b/scene.h index bc4f16d..c5bd901 100644 --- a/scene.h +++ b/scene.h @@ -5,9 +5,20 @@ #include "shape.h" - +/*! + * \file scene.h + * \brief Representation de la scene + */ + +/*! + * \class Scene + * \brief Classe permettant le rendu de la scene + * + * Contient toutes les informations pour pouvoir faire le rendu: la camera, la lumiere, et la liste des pointeurs sur les formes + */ class Scene { + Camera camera_; Shape* *shapes_; Ray3f source_; -- GitLab