Simulate thousands of n-Pendula (up to 32) with Position Based Dynamics
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
558 B

1 year ago
#include <vector>
#include <cstdint>
1 year ago
#include <QObject>
#include <chrono>
using namespace std::chrono;
1 year ago
class Pendulum;
class QPainter;
1 year ago
class QTimer;
1 year ago
1 year ago
class Simulation : public QObject {
1 year ago
public:
explicit Simulation();
double size = 50;
double gravity {};
double timescale {};
int substeps {};
1 year ago
1 year ago
int updateInterval = 17;
1 year ago
bool isPlaying = false;
std::vector<Pendulum *> pendula;
1 year ago
QTimer * timer;
void draw(QPainter*, int) const;
public slots:
void clearPendula();
1 year ago
private slots:
void update();
private:
time_point<system_clock> lastUpdate;
1 year ago
};