
#include <vector>
#include <string>

class Face
{
public: 
	Face(std::vector<int>, int);
	~Face();

	Face(const Face&);

	Face& operator=(const Face&);

	std::vector<int> getPoints();
	void setNeighbour(int);

	int getOwner() const;
	int getNeighbour() const;
	bool isBoundaryFace();

	void setBoundary(std::string);
	std::string getBoundary();
	int getHash();

private:
	std::vector<int> node_ids;
	int owner_id;
	int neighbour_id;
	std::string boundary_name;
	int hash;

	friend bool operator== (const Face& c1, const Face& c2);
	friend bool operator!= (const Face& c1, const Face& c2);
};