#ifndef DEF_MOTEUR_PHYSIQUE
#define DEF_MOTEUR_PHYSIQUE

#include <SFML/Graphics.hpp>
#include <vector>
#include "Moteurs/Physique/ObjetPhysique.hpp"

class MoteurPhysique
{
	public:
		MoteurPhysique(sf::FloatRect pMondePhysique, int pSol, int pGravite);
		void ajouteObjet(ObjetPhysique *pObjet);
		void supprimeObjet(ObjetPhysique *pObjet);
		
		void update();
		void deplaceObjetX(ObjetPhysique *objetADeplacer, float pPositionX = 0);
		void deplaceObjetY(ObjetPhysique *objetADeplacer, float pPositionY = 0);
		
		ObjetPhysique *testCollisionObjet(ObjetPhysique *pObjetATester);
		bool testCollisionMonde(ObjetPhysique *pObjetATester);
		
		bool isATerre(ObjetPhysique *pObjetATester);
	
	private:
		std::vector<ObjetPhysique*> listeObjetsPhysiques;
		
		sf::FloatRect mondePhysique;
		int sol;
		int gravite;
};

#endif
