/** 
* @file LabeledSet.h
* @brief Transformation of vectors
* @author MiKe
* @date 20.01.2010

*/
#ifndef VECTORTRANSFORMINCLUDE
#define VECTORTRANSFORMINCLUDE

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

/** VIRTUAL CLASS FOR TRANSFORMATION OF VECTORS USING EITHER NO PARAMETERS OF A VECTOR OF VECTORS OF PARAMETERS */
///Examples for implementations can be found in BasicVectorTransformations.cpp

namespace OBJREC {
   class VectorTransform{

	public:
		VectorTransform(){};
		~VectorTransform(){};
		///Transformation using no parameter
		virtual NICE::Vector transform( const NICE::Vector& vec) = 0;
		///Transformation using potentially many parameters
		virtual NICE::Vector transform( const NICE::Vector& vec, const std::vector<NICE::Vector>& params) = 0;
		
    };



} // namespace

#endif