-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsimoptionsdialog.cpp
111 lines (87 loc) · 3.1 KB
/
simoptionsdialog.cpp
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
#include "simoptionsdialog.hpp"
#include "ui_simoptionsdialog.h"
SimOptionsDialog::SimOptionsDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::SimOptionsDialog)
{
ui->setupUi(this);
setUpSimOptionsDialog();
createConnections();
this->setFixedSize(this->width(),this->height());
}
SimOptionsDialog::~SimOptionsDialog()
{
delete ui;
}
void SimOptionsDialog::setUpSimOptionsDialog()
{
ui->horizontalSlider_deltaT->setRange(0, 100);
ui->horizontalSlider_deltaT->setSingleStep(1);
ui->horizontalSlider_deltaT->setPageStep(10);
ui->horizontalSlider_deltaT->setValue(8); // 8 ms
ui->horizontalSlider_gravity->setRange(-100, 150);
ui->horizontalSlider_gravity->setSingleStep(1);
ui->horizontalSlider_gravity->setPageStep(10);
ui->horizontalSlider_gravity->setValue(20); // 2.0 m/s^2
ui->horizontalSlider_restitution->setRange(0, 100);
ui->horizontalSlider_restitution->setSingleStep(1);
ui->horizontalSlider_restitution->setPageStep(10);
ui->horizontalSlider_restitution->setValue(25); // 0.25
ui->horizontalSlider_stiffness->setRange(0, 100);
ui->horizontalSlider_stiffness->setSingleStep(1);
ui->horizontalSlider_stiffness->setPageStep(10);
ui->horizontalSlider_stiffness->setValue(20); // 100 N/m
ui->horizontalSlider_damping->setRange(0, 200);
ui->horizontalSlider_damping->setSingleStep(1);
ui->horizontalSlider_damping->setPageStep(10);
ui->horizontalSlider_damping->setValue(40); // 2
ui->horizontalSlider_mass->setRange(0, 100);
ui->horizontalSlider_mass->setSingleStep(1);
ui->horizontalSlider_mass->setPageStep(10);
ui->horizontalSlider_mass->setValue(4); // 0.2 kg
}
void SimOptionsDialog::createConnections()
{
connect(ui->horizontalSlider_deltaT, &QSlider::valueChanged, this,
&SimOptionsDialog::changeDeltaT);
connect(ui->horizontalSlider_gravity, &QSlider::valueChanged, this,
&SimOptionsDialog::changeGravity);
connect(ui->horizontalSlider_restitution, &QSlider::valueChanged, this,
&SimOptionsDialog::changeRestitution);
connect(ui->horizontalSlider_stiffness, &QSlider::valueChanged, this,
&SimOptionsDialog::changeStiffness);
connect(ui->horizontalSlider_damping, &QSlider::valueChanged, this,
&SimOptionsDialog::changeDamping);
connect(ui->horizontalSlider_mass, &QSlider::valueChanged, this,
&SimOptionsDialog::changeMass);
}
void SimOptionsDialog::changeDeltaT(int state)
{
*mpDeltaT = 0.001f * state;
emit propertiesChanged();
}
void SimOptionsDialog::changeGravity(int state)
{
*mpGravity = 0.1f * state;
emit propertiesChanged();
}
void SimOptionsDialog::changeRestitution(int state)
{
*mpRestitution = 0.01f * state;
emit propertiesChanged();
}
void SimOptionsDialog::changeStiffness(int state)
{
*mpStiffness = 5.f * state;
emit propertiesChanged();
}
void SimOptionsDialog::changeDamping(int state)
{
*mpDamping = 0.05f * state;
emit propertiesChanged();
}
void SimOptionsDialog::changeMass(int state)
{
*mpMass = 0.05f * state;
emit propertiesChanged();
}