#ifndef VTKTUTORIALWIDGET_H__
#define VTKTUTORIALWIDGET_H__

#include <QWidget>
#include "ui_VTKTutorialWidget.h"

#include "ritkRImageVTKData.h"
#include "ritkRImageActorPipeline.h"

class VTKTutorialWidget : public QWidget, public Ui_VTKTutorialWidget
{
	Q_OBJECT

public:
	/// Constructor
	VTKTutorialWidget();
	/// Destructor
	~VTKTutorialWidget();

	/**	@name Visualization modes */
	//@{
	/// The available types (AMPLITUDES is CamCube only!)
	typedef enum VisualizationMode
	{
		MONOCHROME,
		ZBUFFER,
		RGB,
		AMPLITUDES,
		FLAGS,
		FRAMEDIFFERENCE
	} VisualizationMode;

signals:
	/// Signal that is emitted if the poly data type was changed
	void PolyDataTypeChanged(ritk::RImageVTKData::PolyDataType Type);
	/// Signal that is emitted if the visualization type changes
	void VisualizationTypeChanged(VTKTutorialWidget::VisualizationMode Mode, bool UseLUT);
	/// Signal that is emitted if the user clicks the button
	void GetLocalNeighborhood();

public slots:
	void UpdateGUI();
	void RadioButtonPolyDataClicked();
	void RadioButtonVisTypeClicked();
	void GetLocalNeighborhoodClicked();

};

#endif // VTKTUTORIALWIDGET_H__
