#ifndef ABSTRACTCASE_H
#define ABSTRACTCASE_H

namespace ground{
	/**
	 * Interface permettant de definir le comportement commun minimum a avoir pour les cases du pathfinder sur matrice.
	 */
	class AbstractCase
	{
	public:
		/**
		 * methode permettant de recuperer le cout de la case.
		 * @param previous : la case precedente dans l'analyse (celle dont on vient)
		 * @return float : le cout simple de la case (sans heuristique)
		 */
		virtual float getCost(AbstractCase* previous) = 0;

		/**
		 * methode permettant de savoir si la case est traversable ou pas.
		 * @param previous : la case precedente dans l'analyse (celle dont on vient)
		 * @return bool : true si la case est traversable, false sinon.
		 */
		virtual bool isPassable(AbstractCase* previous) = 0;
	};
};// namespace terrain

#include "MemoryManager/debugNewOff.h"


#endif
