1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "glwidget.h"
//#include "myogldraw.h"
#include "coefficientegm.h"
#include "coefficientgrace.h"
#include <iostream>
#include <QString>
#include <QFileDialog>
#include <QKeyEvent>
//--------------------------------------- Initialisation de Mainwindow -----------------------------------
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QObject::connect(ui->comboBox,SIGNAL(activated(QString)),this,SLOT(on_comboBox_activated(QString)));
QObject::connect(ui->horizontalSlider,SIGNAL(valueChanged(int)),this,SLOT(on_sliderChanged(int)));
QObject::connect(ui->degre_min,SIGNAL(valueChanged(int)),this,SLOT(on_degreeMax()));
glWidget = new myogldraw(ui->dessin);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::keyPressEvent(QKeyEvent *e)
{
if (e->key() == Qt::Key_Escape)
close();
else
QWidget::keyPressEvent(e);
}
//--------------------------------------- SLOTS -----------------------------------
//------------ Chargement des donnees
CoefficientEGM MainWindow::on_actionChargement_EGM_triggered()
{
egm_mode = new CoefficientEGM l;
// Recuperer nom d'un fichier par une fenetre
QString fileName = QFileDialog::getOpenFileName(this, "Open File",
"/home/marie/Geoide/data/EGM/EGM2008_to2190_TideFree.txt",
"Text (*.txt)");
egm_model->readFile(fileName);
std::cout<<"chargement termine "<< std::endl;
}
CoefficientGRACE MainWindow::on_actionChargement_GRACE_triggered()
{
grace_mode0 = new CoefficientGRACE l;
// Recuperer nom d'un repertoire par une fenetre
QString dir_name = QFileDialog::getExistingDirectory(this, "Open Directory",
"/home/marie/Geoide/data/GRGS/SH_models",
QFileDialog::ShowDirsOnly
| QFileDialog::DontResolveSymlinks);
// On fait une liste avec le nom de tous les fichiers
QDir dir(dir_name);
QFileInfoList list = dir.entryInfoList(QDir::Files);
// Pour chaque fichier, on remplit C et S
for (int i = 0; i < list.size(); ++i) {
QFileInfo fileInfo = list.at(i);
std::cout<<fileInfo.filePath().toStdString()<<std::endl;
grace_model->readFile(fileInfo.filePath(), i);
}
std::cout<<"chargement effectue"<< std::endl;
}
// --------------- Action des boutons (parametres)
// Redimensionnement du choix du degre maximal en fonction des donnees choisies
void MainWindow::on_comboBox_activated(const QString &arg1)
{
int degreeMax=0;
if (arg1=="EGM"){
degreeMax=2190;
}else if (arg1=="GRACE"){
degreeMax=50;
}
ui->degre_max->setMaximum(degreeMax);
}
// Redimensionnement du choix du degre minimal en fonction des donnees choisies
void MainWindow::on_degreeMax()
{
int degreeLimit=ui->degre_max->value();
ui->degre_min->setMaximum(degreeLimit);
}
// Affichage du facteur d'echelle
void MainWindow::on_sliderChanged(const int &arg1)
{
ui->facteur->setText(QString("%1").arg(ui->horizontalSlider->value()));
}
// -------------- Calcul du geoide et affichage
void MainWindow::on_actionGeoide_triggered()
{
int degreeMin = ui->degre_min->value();
int degreeMax = ui->degre_max->value();
QString model = ui->comboBox->currentText();
if (model=="EGM")
egm_model->potentiel(degreeMin,degreeMax);
else if (model=="GRACE")
grace_model->potentiel(degreeMin,degreeMax);
}
void MainWindow::on_actionHarmoniques_paires_triggered()
{
int degreeMin = ui->degre_min->value();
int degreeMax = ui->degre_max->value();
QString model = ui->comboBox->currentText();
if (model=="EGM")
egm_model->potentiel_paire(degreeMin,degreeMax);
else if (model=="GRACE")
grace_model->potentiel_paire(degreeMin,degreeMax);
}
void MainWindow::on_actionHarmoniques_impaires_triggered()
{
int degreeMin = ui->degre_min->value();
int degreeMax = ui->degre_max->value();
QString model = ui->comboBox->currentText();
if (model=="EGM")
egm_model->potentiel_impaire(degreeMin,degreeMax);
else if (model=="GRACE")
grace_model->potentiel_impaire(degreeMin,degreeMax);
} |
Partager