Projet d'Informatique 2012
Simulation générique de systèmes physiques simples : vers les machines de Rube Goldberg
include/Vecteur.h
Aller à la documentation de ce fichier.
00001 
00005 #ifndef VECTEUR_H
00006 #define VECTEUR_H
00007 
00008 #include <vector>
00009 #include <iostream>
00010 
00015 class Vecteur
00016 {
00017     public:
00018 
00023         Vecteur(double dimension);
00024 
00031         Vecteur(double x, double y, double z);
00032 
00037         Vecteur(std::initializer_list<double> const& coordonnees);
00038 
00043         void augmente(double const& valeur = 0.);
00044 
00049         std::vector<double> const& composantes() const;
00050 
00051 
00056         size_t size() const;
00057 
00064         double const& operator[](size_t const& index) const;
00065 
00072         double& operator()(size_t const& index);
00073 
00083         friend std::ostream& operator<<(std::ostream& out, Vecteur const& a_afficher);
00084 
00091         bool operator==(Vecteur const& a_comparer) const;
00092 
00100         bool operator!=(Vecteur const& a_comparer) const;
00101 
00109         Vecteur& operator+=(Vecteur const& a_ajouter);
00110 
00118         Vecteur operator+(Vecteur const& a_ajouter) const;
00119 
00124         Vecteur operator-() const;
00125 
00134         Vecteur& operator-=(Vecteur const& a_soustraire);
00135 
00143         Vecteur operator-(Vecteur const& a_soustraire) const;
00144 
00151         Vecteur& operator*=(double const& scalaire);
00152 
00162         friend Vecteur operator*(double scalaire, Vecteur const& a_multiplier);
00163 
00173         friend Vecteur operator*(Vecteur const& a_multiplier, double scalaire);
00174 
00182         Vecteur& operator/=(double const& scalaire);
00183 
00192         friend Vecteur operator/(Vecteur const& a_diviser, double scalaire);
00193 
00200         double operator*(Vecteur const& a_multiplier_scal) const;
00201 
00210         Vecteur& operator^=(Vecteur const& a_multiplier_vect);
00211 
00219         Vecteur operator^(Vecteur const& a_multiplier_vect) const;
00220 
00226         double norme() const;
00227 
00232         double norme_carre() const;
00233 
00238         Vecteur unitaire() const;
00239 
00240     private:
00241 
00247         void affiche(std::ostream& out) const;
00248 
00252         std::vector<double> m_composantes;
00253 };
00254 
00255 #endif // VECTEUR_H
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Énumérations Valeurs énumérées Amis