#ifndef QUADRATIC_MODEL_H #define QUADRATIC_MODEL_H #include <GeneralModel.h> namespace icl{ /// specialization of the GeneralModel class /** The feature function of a quadratic model must not produces features with a higher oder then 2. In this case, the Equations for x and y can be solved with the pq-Formula - so just the formulas for px,py and qx, and qy must be implemented. @see EllipseModel @see RestrictedEllipseModel @see CircleModel */ template<class T> class QuadraticModel : public GeneralModel<T>{ public: virtual ~QuadraticModel(){} virtual Array<T> x(T y) const; virtual Array<T> y(T x) const; virtual T px(T y) const = 0; virtual T qx(T y) const = 0; virtual T py(T x) const = 0; virtual T qy(T x) const = 0; virtual void features(T x,T y, T *dst) const = 0; virtual void center(T &x, T &y) const = 0; protected: QuadraticModel(int dim); }; } #endif