WIP
This commit is contained in:
parent
696e81433e
commit
89fb6d47d0
@ -1,14 +1,65 @@
|
||||
|
||||
/// \cond
|
||||
// C headers
|
||||
// C++ headers
|
||||
#include <memory>
|
||||
// 3rd party headers
|
||||
/// \endcond
|
||||
|
||||
// qtrocket headers
|
||||
#include "QtRocket.h"
|
||||
#include "SimOptionsWindow.h"
|
||||
#include "ui_SimOptionsWindow.h"
|
||||
|
||||
#include "sim/SimulationOptions.h"
|
||||
|
||||
SimOptionsWindow::SimOptionsWindow(QWidget *parent) :
|
||||
QMainWindow(parent),
|
||||
ui(new Ui::SimOptionsWindow)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
// populate the combo boxes
|
||||
QtRocket* qtrocket = QtRocket::getInstance();
|
||||
|
||||
std::shared_ptr<sim::SimulationOptions> options(new sim::SimulationOptions);
|
||||
std::vector<std::string> atmosphereModels = options->getAvailableAtmosphereModels();
|
||||
std::vector<std::string> gravityModels = options->getAvailableGravityModels();
|
||||
|
||||
for(const auto& i : atmosphereModels)
|
||||
{
|
||||
ui->atmosphereModelCombo->addItem(QString::fromStdString(i));
|
||||
}
|
||||
for(const auto& i : gravityModels)
|
||||
{
|
||||
ui->gravityModelCombo->addItem(QString::fromStdString(i));
|
||||
}
|
||||
}
|
||||
|
||||
SimOptionsWindow::~SimOptionsWindow()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void SimOptionsWindow::on_buttonBox_rejected()
|
||||
{
|
||||
this->close();
|
||||
}
|
||||
|
||||
|
||||
void SimOptionsWindow::on_buttonBox_accepted()
|
||||
{
|
||||
QtRocket* qtrocket = QtRocket::getInstance();
|
||||
|
||||
std::shared_ptr<sim::SimulationOptions> options(new sim::SimulationOptions);
|
||||
|
||||
options->setTimeStep(ui->timeStep->text().toDouble());
|
||||
options->setGravityModel(ui->gravityModelCombo->currentText().toStdString());
|
||||
options->setAtmosphereModel(ui->atmosphereModelCombo->currentText().toStdString());
|
||||
qtrocket->setSimulationOptions(options);
|
||||
|
||||
this->close();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -15,6 +15,11 @@ public:
|
||||
explicit SimOptionsWindow(QWidget *parent = nullptr);
|
||||
~SimOptionsWindow();
|
||||
|
||||
private slots:
|
||||
void on_buttonBox_rejected();
|
||||
|
||||
void on_buttonBox_accepted();
|
||||
|
||||
private:
|
||||
Ui::SimOptionsWindow *ui;
|
||||
};
|
||||
|
@ -26,7 +26,7 @@
|
||||
<x>60</x>
|
||||
<y>20</y>
|
||||
<width>261</width>
|
||||
<height>131</height>
|
||||
<height>156</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
|
@ -4,6 +4,7 @@
|
||||
/// \cond
|
||||
// C headers
|
||||
// C++ headers
|
||||
#include <algorithm>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
@ -32,9 +33,9 @@ class SimulationOptions
|
||||
public:
|
||||
SimulationOptions()
|
||||
{
|
||||
setTimeStep(0.01);
|
||||
setGravityModel("Constant Gravity");
|
||||
setAtmosphereModel("Constant Atmosphere");
|
||||
//setTimeStep(0.01);
|
||||
//setGravityModel("Constant Gravity");
|
||||
//setAtmosphereModel("Constant Atmosphere");
|
||||
}
|
||||
~SimulationOptions() = default;
|
||||
SimulationOptions(const SimulationOptions&) = delete;
|
||||
@ -42,6 +43,22 @@ public:
|
||||
SimulationOptions& operator=(const SimulationOptions&) = delete;
|
||||
SimulationOptions& operator=(SimulationOptions&&) = delete;
|
||||
|
||||
std::vector<std::string> getAvailableGravityModels()
|
||||
{
|
||||
std::vector<std::string> retVal(gravityModels.size());
|
||||
std::transform(gravityModels.begin(), gravityModels.end(), std::back_inserter(retVal),
|
||||
[](auto& i) { return i.first; });
|
||||
return retVal;
|
||||
}
|
||||
|
||||
std::vector<std::string> getAvailableAtmosphereModels()
|
||||
{
|
||||
std::vector<std::string> retVal(atmosphereModels.size());
|
||||
std::transform(atmosphereModels.begin(), atmosphereModels.end(), std::back_inserter(retVal),
|
||||
[](auto& i) { return i.first; });
|
||||
return retVal;
|
||||
}
|
||||
|
||||
void setTimeStep(double t) { timeStep = t; }
|
||||
void setGravityModel(const std::string& model)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user