#ifndef IMFUSION_DEMO_PLUGIN_H
#define IMFUSION_DEMO_PLUGIN_H

#include <ImFusion/Base/ImFusionPlugin.h>

namespace ImFusion
{
	class AlgorithmFactory;
	class AlgorithmControllerFactory;

	/** \brief Demonstrates usage of plugins
		\author Alexander Ladikos
	*/
	class DemoPlugin : public ImFusionPlugin
	{
	public:
		DemoPlugin();
		virtual ~DemoPlugin();

		virtual const AlgorithmFactory* getAlgorithmFactory();

		virtual const AlgorithmControllerFactory* getAlgorithmControllerFactory();

	private:
		AlgorithmFactory* m_algFactory;
		AlgorithmControllerFactory* m_algCtrlFactory;
	};
}

#endif
