#ifndef CLAMPRANGEIMAGEFILTERPLUGIN_H__
#define CLAMPRANGEIMAGEFILTERPLUGIN_H__

#include "ritkFilterPlugin.h"
#include "CRWidget.h"

#include "ClampRangeImageFilter.h"

class ClampRangeImageFilterPlugin : public ritk::FilterPlugin
{
	Q_OBJECT

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

	/// Return the GUI for this plugin @sa PluginBase::GetPluginGUI()
	QWidget *GetPluginGUI();

public slots:
	/// Set the lower bound
	void SetLowerBound(float value);
	/// Set the upper bound
	void SetUpperBound(float value);

protected:
	/// Needs to be implemented.
	FilterPointer GetFilter();

protected:
	/// Lower bound
	float m_LowerBound;
	/// Upper bound
	float m_UpperBound;

	/**	@name	The actual filter */
	//@{
	typedef ClampRangeImageFilter<ritk::RImageF2> CRType;
	typedef CRType::Pointer CRPointer;
	/// The filter
	CRPointer m_Filter;
	//@}

	/// The widget
	CRWidget *m_Widget;

};

#endif // CLAMPRANGEIMAGEFILTERPLUGIN_H__