![]() |
Projet d'Informatique 2012
Simulation générique de systèmes physiques simples : vers les machines de Rube Goldberg
|
00001 00005 #ifndef RESSORT_H 00006 #define RESSORT_H 00007 00008 #include <iostream> 00009 #include <string> 00010 #include <QFormLayout> 00011 #include "Vecteur.h" 00012 #include "ObjetMobile.h" 00013 #include "Couleur.h" 00014 00015 00022 class Ressort : public ObjetMobile 00023 { 00024 public: 00038 Ressort(Vecteur const& omega = Vecteur(1), Vecteur const& d_omega = Vecteur(1), double const& rayon = 1, double const& masse_volumique = 1, Vecteur const& force = Vecteur(3), double const& raideur = 1 , double const& frottement = 1, Vecteur const& direction = Vecteur(1,0,0), Vecteur const& attache = Vecteur(3), Couleur const& color = Couleur(0,1,0,1)); 00039 00043 virtual ~Ressort(); 00044 00049 virtual Vecteur evolution() const; 00050 00055 double const& raideur() const; 00056 00061 double const& frottement() const; 00062 00067 Vecteur const& direction() const; 00068 00073 Vecteur position() const; 00074 00079 Vecteur vitesse() const; 00080 00085 virtual void set_vitesse(Vecteur const& new_vitesse); 00086 00091 virtual void ajoute_force(Vecteur const& df); 00092 00097 Vecteur const& attache() const; 00098 00104 virtual std::string type() const; 00105 00110 virtual QFormLayout* proprietesLayout() const; 00111 00116 virtual void enregistrer(std::ofstream& out) const; 00117 00118 00119 protected: 00120 00125 virtual void affiche(std::ostream& out) const; 00126 00127 private: 00128 00132 double const m_raideur; 00133 00137 double const m_frottement; 00138 00142 Vecteur const m_direction; 00143 00147 Vecteur const m_attache; 00148 00149 }; 00150 00151 #endif