00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <QMap>
00022 #include <QList>
00023 #include <QVVector>
00024
00025 #include <qvmath.h>
00026
00027 #ifndef QVVECTORMAP_H
00028 #define QVVECTORMAP_H
00029
00056 class QVVectorMap: public QMap<double, QVVector>
00057 {
00058 public:
00062 void add(const QVVector &vector);
00063
00067 QVVectorMap(const QList<QVVector> & vectors = QList<QVVector>());
00068
00072 QVVector getClosestVector(const QVVector &vector) const
00073 {
00074 if (size() == 0)
00075 return QVVector();
00076 else
00077 return getClosestVectors(vector, 1).first();
00078 }
00079
00084 QList<QVVector> getClosestVectors(const QVVector &vector, const int n) const;
00085
00087 static QList<QVVector> getClosestVectors(const QVVector actualVector, const QList<QVVector> &vectors, const int n);
00088 };
00089
00090
00091 #endif