![]() |
Projet d'Informatique 2012
Simulation générique de systèmes physiques simples : vers les machines de Rube Goldberg
|
00001 00005 #ifndef PENDULE_H 00006 #define PENDULE_H 00007 00008 #include <string> 00009 #include <QFormLayout> 00010 #include <iostream> 00011 #include "Vecteur.h" 00012 #include "ObjetMobile.h" 00013 00020 class Pendule : public ObjetMobile 00021 { 00022 public: 00023 00037 Pendule(Vecteur const& omega = Vecteur(1), Vecteur const& d_omega = Vecteur(1), double const& rayon = 0.1, double const& masse_volumique = 1, Vecteur const& force = Vecteur(3), double const& longueur = 10 , double const& frottement = 1, Vecteur const& direction = Vecteur(1,0,0), Vecteur const& attache = Vecteur(3), Couleur const& color = Couleur(1,0,0,1)); 00038 00042 virtual ~Pendule(); 00043 00048 virtual Vecteur evolution() const; 00049 00054 double const& longueur() const; 00055 00060 double const& frottement() const; 00061 00066 Vecteur const& direction() const; 00067 00068 00073 virtual Vecteur position() const; 00074 00079 virtual 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_longueur; 00133 00137 double const m_frottement; 00138 00142 Vecteur const m_direction; 00143 00147 Vecteur const m_attache; 00148 00149 }; 00150 00151 #endif