/** 
* @file VecClassifierICE.h
* @brief standard interface to ICE classifiers
* @author Erik Rodner
* @date 07.09.2007

*/

#ifdef NICE_USELIB_ICE

#ifndef VecClassifierICEINCLUDE
#define VecClassifierICEINCLUDE

#include <image_nonvis.h>

#include <string>

#include "vislearning/classifier/classifierbase/VecClassifier.h"


namespace OBJREC {

/** standard interface to ICE classifiers */
class VecClassifierICE : public VecClassifier
{
    protected:
	ice::Classifier *classifier;

    public:
  
	/** simple constructor */
	VecClassifierICE( const NICE::Config *conf,
			 ice::Classifier *classifier );

	/** simple destructor */
	virtual ~VecClassifierICE();
     
     
	/** classify using simple vector */
	ClassificationResult classify ( const NICE::Vector & x ) const;

	/** classify using a simple vector */
	void teach ( const LabeledSetVector & teachSet );

	void clear ();

	void store ( std::ostream & os ) const;

	void restore ( std::istream & is );

	void finishTeaching();

};


} // namespace

#endif

#endif