#ifndef VTransferFunctionNode_h
#define VTransferFunctionNode_h

/*! \brief VTransferFunctionNode: Klasse zur Repräsentation eines Knotens der Transferfunktion.
*/
class VTransferFunctionNode
{
	int x;
	int y;
	/*! Farbe des Knotens */
	float * color;
	/*! Transparenz des Knotens */
	float opacity;
	bool choose;

public:
	/*! Konstruktor
		\param x x Position des Knotens
		\param y y Position des Knotens
	*/
	VTransferFunctionNode(int, int);
	/*! Liefert die Farbe zurück */
	float * getColor();
	/*! Liefert die Transparenz zurück
		\param height Höhe des Fensters (zum skalieren der y Koordinate)
	*/
	float getOpacity(int, int);
	void draw();
	int getx();
	int gety();
	void setx(int);
	void sety(int);
	bool isInside(int,int);
	/*! Liefert zurück ob der Knoten ausgewählt wurde
	*/
	bool isChoosed();
	void setChoosed(bool);
	//bool operator< (const VTransferFunctionNode&);
	/*! Hilfsfunktion zum Sortieren der Knoten anhand der x Koordinate
	*/
	friend bool operator < (const VTransferFunctionNode& n1, const VTransferFunctionNode& n2);
	//bool operator== (VTransferFunctionNode);
	//bool operator!= (VTransferFunctionNode);
	~VTransferFunctionNode(void);
};

#endif