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
00027 #ifndef KMAXSOLVER_H
00028 #define KMAXSOLVER_H
00029
00030 #include <QGpCoreTools.h>
00031 #include <QGpCoreWave.h>
00032
00033 #include "ArrayCoreDLLExport.h"
00034
00035 namespace ArrayCore {
00036
00037 class ARRAYCORE_EXPORT KmaxSolver: public Thread, public TheoreticalLinearFK, private ConcentricSearch
00038 {
00039 Q_OBJECT
00040 public:
00041 KmaxSolver(const QVector<Point2D>& stations, double kmin);
00042 ~KmaxSolver();
00043
00044 void calculate() {start();}
00045 void terminate();
00046
00047 double kmax(bool& ok) const;
00048 private:
00049 virtual void run();
00050
00051 QAtomicInt _terminated;
00052 mutable QMutex _kMutex;
00053 double _kminHalf;
00054 double _dk;
00055 double _kmax;
00056 bool _valid;
00057 };
00058
00059 }
00060
00061 #endif // KMAXSOLVER_H