ArrayGui/ArrayResponse.h
Go to the documentation of this file.
00001 /***************************************************************************
00002 **
00003 **  This file is part of ArrayGui.
00004 **
00005 **  This file may be distributed and/or modified under the terms of the
00006 **  GNU General Public License version 2 or 3 as published by the Free
00007 **  Software Foundation and appearing in the file LICENSE.GPL included
00008 **  in the packaging of this file.
00009 **
00010 **  This file is distributed in the hope that it will be useful, but WITHOUT
00011 **  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00012 **  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
00013 **  more details.
00014 **
00015 **  You should have received a copy of the GNU General Public License
00016 **  along with this program. If not, see <http://www.gnu.org/licenses/>.
00017 **
00018 **  See http://www.geopsy.org for more information.
00019 **
00020 **  Created : 2004-05-26
00021 **  Authors:
00022 **    Marc Wathelet
00023 **    Marc Wathelet (ULg, Liège, Belgium)
00024 **    Marc Wathelet (LGIT, Grenoble, France)
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 } // namespace ArrayGui
00093 
00094 #endif // ARRAYRESPONSE_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines