diff options
author | ccolin | 2021-01-02 01:10:54 +0100 |
---|---|---|
committer | ccolin | 2021-01-02 01:10:54 +0100 |
commit | 861d505606d612bc328534dba3257e9ef9a1c269 (patch) | |
tree | 7ed7653ac0ec687317464b3518134b2244804a5a /src/settings_pane.cc | |
parent | 87f8c49cffe8a994c62c08cdb207e03ed4e0b6b8 (diff) |
add basic collision detection
Diffstat (limited to 'src/settings_pane.cc')
-rw-r--r-- | src/settings_pane.cc | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/settings_pane.cc b/src/settings_pane.cc new file mode 100644 index 0000000..f37c14c --- /dev/null +++ b/src/settings_pane.cc @@ -0,0 +1,44 @@ +#include "settings_pane.hh" + +#include <QCheckBox> +#include <QDoubleSpinBox> +#include <QFormLayout> + + +SettingsPane::SettingsPane(QWidget *parent) + :QWidget(parent) { + QDoubleSpinBox *sphere_radius = new QDoubleSpinBox(); + QCheckBox *show_trajectories = new QCheckBox(); + QCheckBox *show_support_lines = new QCheckBox(); + collisions = new QListWidget(); + + connect(sphere_radius, QOverload<double>::of(&QDoubleSpinBox::valueChanged), + this, &SettingsPane::sphereRadiusChanged); + connect(show_trajectories, &QCheckBox::stateChanged, + this, &SettingsPane::toggledTrajectories); + connect(show_support_lines, &QCheckBox::stateChanged, + this, &SettingsPane::toggledSupportLines); + + QFormLayout *layout = new QFormLayout; + layout->addRow("Taille de la sphère de collision", sphere_radius); + layout->addRow("Afficher les trajectoires", show_trajectories); + layout->addRow("Afficher les lignes de support", show_support_lines); + layout->addRow(collisions); + setLayout(layout); +} + + +void SettingsPane::addCollision(int idA, int idB, int frame) { + QListWidgetItem *item = new QListWidgetItem(QString::number(frame) + ": " + + QString::number(idA) + " / " + QString::number(idB)); + item->setFlags(Qt::ItemIsEnabled | Qt::ItemNeverHasChildren); + collisions->addItem(item); +} + + +void SettingsPane::clearCollisions() { + QListWidgetItem *item; + while ((item = collisions->takeItem(0)) != nullptr) { + delete item; + } +} |