Projet d'Informatique 2012
Simulation générique de systèmes physiques simples : vers les machines de Rube Goldberg
include/ObjetMobile.h
Aller à la documentation de ce fichier.
00001 
00005 #ifndef OBJETMOBILE_H
00006 #define OBJETMOBILE_H
00007 
00008 #include <string>
00009 #include <iostream>
00010 #include "Vecteur.h"
00011 #include "Element.h"
00012 #include "Couleur.h"
00013 
00014 class Systeme;
00015 
00021 class ObjetMobile : public Element
00022 {
00023     public:
00024 
00034         ObjetMobile(Vecteur const& omega = Vecteur(3), Vecteur const& d_omega = Vecteur(3), double const& rayon = 1, double const& masse_volumique = 1, Vecteur const& force = Vecteur(3), Couleur const& color = Couleur(1,1,1,1));
00035 
00040         ObjetMobile(size_t const& taille);
00041 
00045         virtual ~ObjetMobile();
00046 
00052         virtual Vecteur evolution() const = 0;
00053 
00058         virtual double distance(ObjetMobile const& objet) const;
00059 
00064         virtual void agit_sur(ObjetMobile& objet);
00065 
00070         virtual void ajoute_a(Systeme* syst);
00071 
00076         virtual void ajoute_force(Vecteur const& df);
00077 
00083         double masse() const;
00084 
00089         Vecteur const& omega() const;
00090 
00095         Vecteur const& d_omega() const;
00096 
00101         Vecteur const& force() const;
00102 
00107         double const& rayon() const;
00108 
00113         double const& masse_volumique() const;
00114 
00119         void set_omega(Vecteur const& new_omega);
00120 
00125         void set_d_omega(Vecteur const& new_d_omega);
00126 
00132         virtual Vecteur position() const = 0;
00133 
00139         virtual Vecteur vitesse() const = 0;
00140 
00145         virtual void set_vitesse(Vecteur const& new_vitesse) = 0;
00146 
00150         void reset_force();
00151 
00152     protected:
00153 
00157         Couleur m_couleur;
00158 
00159     private:
00163         Vecteur m_omega;
00164 
00168         Vecteur m_d_omega;
00169 
00173         double const m_rayon;
00174 
00178         double const m_masse_volumique;
00179 
00183         Vecteur m_force;
00184 };
00185 
00186 #endif
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Énumérations Valeurs énumérées Amis