// represents a rectangular cell when performing A* pathfinding

class AStarCell
{
private:

public:
	int i, j;
	int F, G, H;
	//AStarCell* parent;
	int parentI, parentJ;

	AStarCell (int _i, int _j)
	{
		i = _i;
		j = _j;
	}

	int setIJ( int _i, int _j)
	{
		i = _i;
		j = _j;
		return 0;
	}

	int setGHF (int _G, int _H)
	{
		G = _G;
		H = _H;
		F = G + H;
		return F;
	}
/*
	int setParent(AStarCell _parent)
	{
		parent = &_parent;
		return 0;
	} */

	int setParent(int _parentI, int _parentJ)
	{
		parentI = _parentI;
		parentJ = _parentJ;
		return 0;
	}

	int getF()
	{ return F; }

	int getG()
	{ return G; }

	int getH()
	{ return H; }

	bool operator == (AStarCell *rhs)
	{
		if (this->i == rhs->i && this->j == rhs->j)
			return true;
		else
			return false;
	}

	bool operator == (AStarCell rhs)
	{
		if (this->i == rhs.i && this->j == rhs.j)
			return true;
		else
			return false;
	}

	bool operator < (AStarCell &rhs)
	{
		if (this->F < rhs.F)
			return true;
		else
			return false;
	}	


};