diff --git a/src/pulsaranimationwidget.cpp b/src/pulsaranimationwidget.cpp index 5855e2482ebf878454d046f1768d3f8cdc05beb7..a6d169baa376081fee699a156403280cb9985cba 100644 --- a/src/pulsaranimationwidget.cpp +++ b/src/pulsaranimationwidget.cpp @@ -64,7 +64,8 @@ PulsarAnimationWidget::PulsarAnimationWidget(QWidget *parent) : m_framesPerSecond = 25; m_pulsarRotationDelta = 0.0; m_orbitRotationDelta = 0.0; - resetParameters(); + m_pulsarRotationAngle = 0.0; + m_orbitRotationAngle = 0.0; // initial binary system parameters (have to match GUI!) m_pulsarMass = 1.4; @@ -393,7 +394,7 @@ void PulsarAnimationWidget::updateFrame() updateGL(); - emit pulsarAnimationStep(m_pulsarRotationDelta); + emit pulsarAnimationStep(m_pulsarRotationAngle); } void PulsarAnimationWidget::showOrbits(bool enabled) @@ -455,6 +456,7 @@ void PulsarAnimationWidget::mouseReleaseEvent(QMouseEvent *event) m_mouseLastX = 0; m_mouseLastY = 0; m_cameraInteraction = false; + updateGL(); } @@ -554,8 +556,9 @@ void PulsarAnimationWidget::resetParameters() { m_pulsarRotationAngle = 0.0; m_orbitRotationAngle = 0.0; + updatePulseProfile(); - emit pulsarAnimationReset(); + emit pulsarAnimationStep(m_pulsarRotationAngle); } void PulsarAnimationWidget::updatePulseProfile() diff --git a/src/pulsaranimationwidget.h b/src/pulsaranimationwidget.h index b4ac3e17ccd51ba920278005bc16aa7cbbfa2ddf..cd7ee995269b26c926212b28bed2b71c99512217 100644 --- a/src/pulsaranimationwidget.h +++ b/src/pulsaranimationwidget.h @@ -59,8 +59,7 @@ public slots: signals: void pulsarSemiMajorAxisUpdated(double value); void pulseProfileUpdated(const QVector<double>& data); - void pulsarAnimationStep(double stepSize); - void pulsarAnimationReset(); + void pulsarAnimationStep(double position); private: void initializeGL(); diff --git a/src/pulsatingscience.cpp b/src/pulsatingscience.cpp index f0c4019aedea7570376bb34213ad1551c93d5697..bb77ceb3f3136033950fbe445ad177a59efa3ed2 100644 --- a/src/pulsatingscience.cpp +++ b/src/pulsatingscience.cpp @@ -73,10 +73,7 @@ PulsatingScience::PulsatingScience(QWidget *parent) : QMainWindow(parent) this, SLOT(updatePulsarSemiMajorAxisValue(double))); connect(ui.pulsarGlWidget, SIGNAL(pulsarAnimationStep(double)), - ui.pulseScopeWidget, SLOT(markerStep(double)), Qt::DirectConnection); - - connect(ui.pulsarGlWidget, SIGNAL(pulsarAnimationReset()), - ui.pulseScopeWidget, SLOT(markerReset())); + ui.pulseScopeWidget, SLOT(setMarker(double)), Qt::DirectConnection); connect(ui.pulsarGlWidget, SIGNAL(pulseProfileUpdated(const QVector<double>&)), ui.pulseScopeWidget, SLOT(drawCurve(const QVector<double>&)), Qt::DirectConnection); diff --git a/src/pulsescopewidget.cpp b/src/pulsescopewidget.cpp index 0b83e8ddc01fcbfa83ebbf1621b8f658d5e09135..e75bec9c89e6b4fe0de2986b005f9a6e5280fe54 100644 --- a/src/pulsescopewidget.cpp +++ b/src/pulsescopewidget.cpp @@ -83,18 +83,6 @@ void PulseScopeWidget::drawCurve(const QVector<double>& vector) } } -void PulseScopeWidget::markerStep(double stepSize) { - static double x = 0.0; - - if(x < m_scopeSizeH) { - x += stepSize; - m_marker->setLine(x, 0.0, x, m_scopeSizeV); - } - else { - x -= m_scopeSizeH; - } -} - -void PulseScopeWidget::markerReset() { - m_marker->setLine(0.0, 0.0, 0.0, m_scopeSizeV); +void PulseScopeWidget::setMarker(double position) { + m_marker->setLine(position, 0.0, position, m_scopeSizeV); } diff --git a/src/pulsescopewidget.h b/src/pulsescopewidget.h index 96192a380d5ad0a4ff47fa7da3fc7ffacacaf916..267ef2f644a157b6f5576b1a80a973a51c19efe7 100644 --- a/src/pulsescopewidget.h +++ b/src/pulsescopewidget.h @@ -42,8 +42,7 @@ public: public slots: void drawCurve(const QVector<double>& vector); - void markerStep(double stepSize); - void markerReset(); + void setMarker(double position); private: QGraphicsScene m_scene;