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
00028 #ifndef ARRAYRESPONSE_H
00029 #define ARRAYRESPONSE_H
00030
00031 #include <ArrayCore.h>
00032 #include <QGpGuiWave.h>
00033
00034 #include "WaveNumAnimate.h"
00035 #include "ArrayGuiDLLExport.h"
00036
00037 namespace ArrayGui {
00038
00039 class ARRAYGUI_EXPORT ArrayResponse : public GraphicSheetMenu
00040 {
00041 Q_OBJECT
00042 public:
00043 ArrayResponse(QWidget * parent=0, Qt::WFlags fl=0);
00044 ~ArrayResponse();
00045
00046 void setArray(const QVector<Point2D>& p);
00047 void setFrequencySampling(SamplingParameters& fparam);
00048 void createObjects(bool showDispersion);
00049 double kmin() const;
00050 double kmax() const;
00051 public slots:
00052 void setKmin(double kmin);
00053 void setKmax(double kmax);
00054 void setAzimuth(double azimuth);
00055 private slots:
00056 void setTemporaryKmax();
00057 void setComputedKmax();
00058 signals:
00059 void kminChanged(double kmin);
00060 void kmaxChanged(double kmin);
00061 private:
00062 void initKmax(double kmax);
00063 void uniquePoints();
00064 void shiftStations();
00065 double theoreticalKmax() const;
00066 double gridKmax() const;
00067 double gridKmin() const;
00068 void scanAzimuth();
00069 virtual void resizeEvent(QResizeEvent *);
00070
00071 LiveGridLayer * _gridLayer;
00072 CircleViewer * _circleLayer;
00073 LineLayer * _directionLayer;
00074 XUniqueYColorLines * _crossGrayLayer;
00075 LineLayer * _midHeightLayer;
00076 LineLayer * _crossBlackLayer;
00077 DispersionLimitLayer * _dispLimitLayer;
00078
00079 double _kmin;
00080 QTimer _kmaxTimer;
00081 bool _kmaxTouched;
00082 KmaxSolver * _kmaxSolver;
00083
00084 TextEdit * _comments;
00085
00086 WaveNumAnimate waveNum;
00087 ColorPaletteWidget _palette;
00088 QVector<Point2D> _stations;
00089 QVector<Complex> _stationSig;
00090 };
00091
00092 }
00093
00094 #endif // ARRAYRESPONSE_H