#ifndef OPENGLSKELETONCONTROLUNIT_H__
#define OPENGLSKELETONCONTROLUNIT_H__

#include "RITKVisualization.h"

#include <QMutex>

#include "ui_OpenGLSkeletonControlUnit.h"

#include "ritkRImage.h"
#include "ritkImagePayloadVisualizationConfig.h"

namespace ritk
{

/**	@ingroup	Visualization
 *	@class		OpenGLSkeletonControlUnit
 *	@author		Johannes Simon
 *	@brief		A controler for a SkeletonEntity
 *
 *	@details
 */
class OpenGLSkeletonControlUnit : public QDockWidget, public Ui_OpenGLSkeletonControlUnit
{
	Q_OBJECT

public:
	/// Constructor
	OpenGLSkeletonControlUnit( QWidget * parent = 0, Qt::WindowFlags flags = 0 );
	/// Destructor
	~OpenGLSkeletonControlUnit();


public slots:
	/**	@brief	Update the GUI based on image payload configs
	 *	@param	Data	a vector containing image payload configs
	 *
	 *	@details
	 *	A call to this method will update the control unit's GUI to fit the visualization configurations.
	 */
	//virtual void ResetGUI(std::vector<ImagePayloadVisualizationConfig> Table);

	void InferredJointsVisualizationChanged(bool check);
	void JointOutputChanged(bool check);
	void showSkeletonChecked(bool check);

signals:
	void changeInferredJointVisualization(bool check);
	void changeJointOutput(bool check);
	void showSkeletonSignal(bool check);

protected:

protected slots:

};




} // end namespace ritk

#endif // OPENGLSKELETONCONTROLUNIT_H__