Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef TRIANGULATOR_H
00027 #define TRIANGULATOR_H
00028
00029 #include <QGpCoreTools.h>
00030
00031 #include "TapePositioningSystemDLLExport.h"
00032
00033 namespace TapePositioningSystem {
00034
00035 class Node;
00036 class Cluster;
00037
00038 class TAPEPOSITIONINGSYSTEM_EXPORT Triangulator
00039 {
00040 public:
00041 Triangulator();
00042 ~Triangulator();
00043
00044 Node * addNode(const QString& name);
00045 Node * node(const QString& name) const;
00046 QList<Node *> nodes() const {return _nodes.values();}
00047
00048 void addDistance(const QString& node1, const QString& node2, double value);
00049
00050 void aggregate(double stddev);
00051 void setCoordinates(Node * origin, Node * north, Node * eastward);
00052 void printClusters();
00053 void setPriorCoordinates(const QMap<QString, Point>& c, double precision);
00054 QSet<Point2D> solutions(const QString& nodeName) const;
00055 Covariance covariance(const QString& nodeName) const;
00056 private:
00057 void aggregate(Cluster * parent, QList<Cluster *> quads);
00058
00059 QMap<QString, Node *> _nodes;
00060 QList<Cluster *> _clusters;
00061 };
00062
00063 }
00064
00065 #endif // TRIANGULATOR_H