Page principale | Hiérarchie des classes | Liste des classes | Liste des fichiers | Membres de classe | Membres de fichier

FVector.hpp

Aller à la documentation de ce fichier.
00001 /// \file 00002 /// Définition de la classe FVector 00003 #ifndef GUARD_FVECTOR_H 00004 #define GUARD_FVECTOR_H 00005 00006 #include "Debug.hpp" 00007 #include "Pixel.hpp" 00008 #include <vector> 00009 using namespace std; 00010 class FVector_Base; 00011 /////////////////////////////////////////////////////////////////////////////// 00012 /// Interface sur un FVector_Base 00013 /// 00014 /// Gère un compteur de références 00015 /// La pluspart des méthodes sont redirigées vers une instance de FVector 00016 /////////////////////////////////////////////////////////////////////////////// 00017 class FVector{ 00018 friend float norm(const FVector&, const FVector&); 00019 friend float normColor(const FVector&, const FVector&); 00020 /// Pointeur sur un vecteur 00021 FVector_Base* p; 00022 public: 00023 /// Constructeur par défaut 00024 FVector(); 00025 /// Constructeur à partir des coordonnées dans l'espace des Features 00026 /// \param float coordonnée x 00027 /// \param float coordonnée y 00028 /// \param float coordonnée h 00029 /// \param float coordonnée s 00030 /// \param float coordonnée v 00031 FVector(float, float, float, float, float); 00032 /// Retourne une chaîne de caractères détaillée 00033 string toString()const; 00034 /// Constructeur de copie 00035 FVector(const FVector&); 00036 /// Opérateur d'affectation 00037 FVector& operator=(const FVector&); 00038 /// Destructeur 00039 ~FVector(); 00040 /// retourne la coordonnée x entière 00041 int getX() const; 00042 /// retourne la coordonnée y entière 00043 int getY() const; 00044 /// retourne la ième coordonnée 00045 /// \param int axe 00046 float operator[](int) const; 00047 /// Opérateur d'addition de vecteur 00048 FVector& operator+=(const FVector&); 00049 /// Opérateur de division par un scalaire 00050 FVector& operator/=(const float&); 00051 /// Opérateur relationnel d'ordre 00052 bool operator<(const FVector)const; 00053 }; 00054 /// Calcule la norme euclidienne de 2 vecteurs 00055 /// \param FVector& 1er vecteur 00056 /// \param FVector& 2ème vecteur 00057 float norm(const FVector&, const FVector&); 00058 /// Calcule la norme euclidienne entre les couleurs de 2 vecteur 00059 /// \param FVector& 1er vecteur 00060 /// \param FVector& 2ème vecteur 00061 float normColor(const FVector&, const FVector&); 00062 /////////////////////////////////////////////////////////////////////////////// 00063 /// Classe de base abstraite pour les FVector 00064 /// 00065 /// C'est cette classe qui possède le compteur de référence 00066 /////////////////////////////////////////////////////////////////////////////// 00067 class FVector_Base{ 00068 friend class FVector; 00069 /// Compteur de référence 00070 int use; 00071 /// Données 00072 float* data; 00073 /// Constructeur par défaut 00074 FVector_Base(); 00075 /// Constructeur à partir des coordonnées dans l'espace des Features 00076 /// \param float coordonnée x 00077 /// \param float coordonnée y 00078 /// \param float coordonnée h 00079 /// \param float coordonnée s 00080 /// \param float coordonnée v 00081 FVector_Base(float, float, float, float ,float); 00082 /// Destructeur 00083 ~FVector_Base(); 00084 /// retourne la coordonnée x entière 00085 int getX() const; 00086 /// retourne la coordonnée y entière 00087 int getY() const; 00088 /// Opérateur d'addition de vecteur 00089 FVector_Base& operator+=(const FVector_Base*); 00090 /// Opérateur de division par un scalaire 00091 FVector_Base& operator/=(const float&); 00092 /// Opérateur relationnel : utilise l'ordre lexicographique 00093 bool operator<(const FVector_Base*)const; 00094 /// Affiche une chaîne de caractères détaillée 00095 string toString()const; 00096 public: 00097 /// Dimension de l'espace 00098 static const int dim; 00099 /// retourne la ième coordonnée 00100 /// \param int axe 00101 float operator[](int i) const; 00102 00103 }; 00104 /// Calcule la norme euclidienne de 2 vecteurs 00105 /// \param FVector_Base& 1er vecteur 00106 /// \param FVector_Base& 2ème vecteur 00107 float norm(const FVector_Base&, const FVector_Base&); 00108 /// Calcule la norme euclidienne entre les couleurs de 2 vecteur 00109 /// \param FVector_Base 1er vecteur 00110 /// \param FVector_Base 2ème vecteur 00111 float normColor(const FVector_Base&, const FVector_Base&); 00112 #endif 00113 00114

Généré le Sun Jun 27 15:59:32 2004 pour segment par doxygen 1.3.7