/** 
* @file LabeledSet.h
* @brief Transformations of Labeled set of vectors (only vectors are transformed)
* @author Mi.Ke
* @date 20.01.2010

*/
#ifndef LABELEDSETVECTORTRANSFORMINCLUDE
#define LABELEDSETVECTORTRANSFORMINCLUDE

#include "core/image/ImageT.h"
#include "core/vector/VectorT.h"
#include "core/vector/MatrixT.h"

#include <vector>
#include <map>

#include "vislearning/cbaselib/LabeledSet.h"
#include "vislearning/cbaselib/VectorTransform.h"

namespace OBJREC {
/** simple labeled set of vectors as a specialization of std::map<> */
   class LabeledSetVectorTransform{

	private:

		VectorTransform* trans;

	public:

		LabeledSetVectorTransform( OBJREC::VectorTransform* _trans) : trans(_trans) {} ;
		~LabeledSetVectorTransform(){};

		LabeledSetVector* transform (LabeledSetVector& labeledSet1);
		LabeledSetVector* transform (LabeledSetVector& labeledSet1, const NICE::Vector& params);
		LabeledSetVector* transform (LabeledSetVector& labeledSet1, const std::vector<NICE::Vector>& params);

};



} // namespace

#endif
