diff --git a/src/pulsaranimationwidget.cpp b/src/pulsaranimationwidget.cpp index bbefb8681b4bde69d98b2db48f41dfe8b3210e8a..43767f4ec09733e3a21090927ab367593c3c3f0b 100644 --- a/src/pulsaranimationwidget.cpp +++ b/src/pulsaranimationwidget.cpp @@ -38,8 +38,10 @@ PulsarAnimationWidget::PulsarAnimationWidget(QWidget *parent) : connect(&m_frameTimer, SIGNAL(timeout()), this, SLOT(updateFrame())); + m_quadricCompanionOrbitPlane = NULL; + m_quadricCompanion = NULL; m_quadricPulsarOrbitPlane = NULL; - m_quadricPulsar = NULL; + m_quadricPulsar = NULL; m_quadricPulsarCone1 = NULL; m_quadricPulsarCone2 = NULL; m_quadricPulsarSpinAxis = NULL; @@ -52,6 +54,9 @@ PulsarAnimationWidget::PulsarAnimationWidget(QWidget *parent) : resetParameters(); + m_pulsarMass = 1.4f; + m_companionMass = 1.4f; + m_showRotationAxes = false; m_cameraInteraction = false; m_mouseLastX = 0; @@ -66,6 +71,8 @@ PulsarAnimationWidget::PulsarAnimationWidget(QWidget *parent) : PulsarAnimationWidget::~PulsarAnimationWidget() { + if(m_quadricCompanionOrbitPlane) gluDeleteQuadric(m_quadricCompanionOrbitPlane); + if(m_quadricCompanion) gluDeleteQuadric(m_quadricCompanion); if(m_quadricPulsarOrbitPlane) gluDeleteQuadric(m_quadricPulsarOrbitPlane); if(m_quadricPulsar) gluDeleteQuadric(m_quadricPulsar); if(m_quadricPulsarCone1) gluDeleteQuadric(m_quadricPulsarCone1); @@ -108,6 +115,8 @@ void PulsarAnimationWidget::initializeGL() glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_BLEND); + m_quadricCompanionOrbitPlane = gluNewQuadric(); + m_quadricCompanion = gluNewQuadric(); m_quadricPulsarOrbitPlane = gluNewQuadric(); m_quadricPulsar = gluNewQuadric(); m_quadricPulsarCone1 = gluNewQuadric(); @@ -115,6 +124,8 @@ void PulsarAnimationWidget::initializeGL() m_quadricPulsarSpinAxis = gluNewQuadric(); m_quadricPulsarMagneticAxis = gluNewQuadric(); + gluQuadricNormals(m_quadricCompanionOrbitPlane, GLU_SMOOTH); + gluQuadricNormals(m_quadricCompanion, GLU_SMOOTH); gluQuadricNormals(m_quadricPulsarOrbitPlane, GLU_SMOOTH); gluQuadricNormals(m_quadricPulsar, GLU_SMOOTH); gluQuadricNormals(m_quadricPulsarCone1, GLU_SMOOTH); @@ -142,7 +153,7 @@ void PulsarAnimationWidget::resizeGL(int w, int h) glMatrixMode(GL_PROJECTION); glLoadIdentity(); - gluPerspective(45.0f, (GLfloat)w / (GLfloat)h, 0.1f, 100.0f); + gluPerspective(45.0f, (GLfloat)w / (GLfloat)h, 0.1f, 500.0f); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); @@ -174,17 +185,17 @@ void PulsarAnimationWidget::paintGL() // draw companion glPushMatrix(); - glTranslatef(sin((m_orbitRotationAngle + 180) * deg2rad) * m_companionOrbitRadius, + glTranslatef(sin((m_orbitRotationAngle + 180) * deg2rad) * m_companionSemiMajorAxis, 0.0f, - cos((m_orbitRotationAngle + 180) * deg2rad) * m_companionOrbitRadius); - gluSphere(m_quadricPulsar, 1.0f, 32, 32); + cos((m_orbitRotationAngle + 180) * deg2rad) * m_companionSemiMajorAxis); + gluSphere(m_quadricCompanion, 1.0f, 32, 32); glPopMatrix(); // draw pulsar glPushMatrix(); - glTranslatef(sin(m_orbitRotationAngle * deg2rad) * m_pulsarOrbitRadius, + glTranslatef(sin(m_orbitRotationAngle * deg2rad) * m_pulsarSemiMajorAxis, 0.0f, - cos(m_orbitRotationAngle * deg2rad) * m_pulsarOrbitRadius); + cos(m_orbitRotationAngle * deg2rad) * m_pulsarSemiMajorAxis); glPushMatrix(); glRotatef(m_pulsarSpinAxisInclination, 0.0f, 0.0f, 1.0f); @@ -263,15 +274,27 @@ void PulsarAnimationWidget::paintGL() glPopMatrix(); glPopMatrix(); - // draw orbital plane + // draw orbital planes if(m_cameraInteraction) { glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, translucent); + // pulsar glPushMatrix(); glRotatef(90.0f, 1.0f, 0.0f, 0.0f); + glTranslatef(0.0f, 0.0f, -0.1f); gluDisk(m_quadricPulsarOrbitPlane, - m_pulsarOrbitRadius * 0.9f, - m_pulsarOrbitRadius * 1.1f, + m_pulsarSemiMajorAxis - 0.25f, + m_pulsarSemiMajorAxis + 0.25f, + 64, 1); + glPopMatrix(); + + // companion + glPushMatrix(); + glRotatef(90.0f, 1.0f, 0.0f, 0.0f); + glTranslatef(0.0f, 0.0f, 0.0f); + gluDisk(m_quadricCompanionOrbitPlane, + m_companionSemiMajorAxis - 0.25f, + m_companionSemiMajorAxis + 0.25f, 64, 1); glPopMatrix(); } @@ -379,21 +402,34 @@ void PulsarAnimationWidget::setFramePerSecond(const unsigned int fps) m_framesPerSecond = fps; } -void PulsarAnimationWidget::setPulsarRotationDelta(const float frequency) +void PulsarAnimationWidget::setPulsarSemiMajorAxis(const float length) { - m_pulsarRotationDelta = (360.0f * frequency) / m_framesPerSecond; + m_pulsarSemiMajorAxis = length; + m_companionSemiMajorAxis = (m_pulsarMass/m_companionMass) * m_pulsarSemiMajorAxis; + updateOrbitPeriod(); + + updateGL(); } -void PulsarAnimationWidget::setOrbitRotationDelta(const float frequency) +void PulsarAnimationWidget::setCompanionMass(const float mass) { - m_orbitRotationDelta = (360.0f * frequency) / m_framesPerSecond; + m_companionMass = mass; + updateOrbitRadii(); + + updateGL(); } -void PulsarAnimationWidget::setOrbitRadius(const float radius) +void PulsarAnimationWidget::setPulsarMass(const float mass) { - // for the time being both have the same orbit (mass) - m_pulsarOrbitRadius = radius; - m_companionOrbitRadius = radius; + m_pulsarMass = mass; + updateOrbitRadii(); + + updateGL(); +} + +void PulsarAnimationWidget::setPulsarSpinFrequency(const float frequency) +{ + m_pulsarRotationDelta = (360.0f * frequency) / m_framesPerSecond; } void PulsarAnimationWidget::setPulsarSpinAxisInclination(const int degrees) @@ -410,6 +446,32 @@ void PulsarAnimationWidget::setPulsarMagneticAxisInclination(const int degrees) updateGL(); } +void PulsarAnimationWidget::updateOrbitPeriod() +{ + m_orbitalPeriod = 3.1553e7 * sqrt( + (pow(m_pulsarSemiMajorAxis,3) * pow(m_pulsarMass+m_companionMass,2)) / + pow(m_companionMass,3) + ); + + // visual correction factor (increase orbital momentum) + double visualCorrection = 1e-8; + + m_orbitRotationDelta = (360.0 / (m_orbitalPeriod*visualCorrection)) / m_framesPerSecond; +} + +void PulsarAnimationWidget::updateOrbitRadii() +{ + m_pulsarSemiMajorAxis = 1.0015e-5 * pow( + (pow(m_orbitalPeriod,2) * pow(m_companionMass,3)) / + pow(m_pulsarMass+m_companionMass,2), + 1.0/3.0 + ); + + m_companionSemiMajorAxis = (m_pulsarMass/m_companionMass) * m_pulsarSemiMajorAxis; + + emit pulsarSemiMajorAxisUpdated(m_pulsarSemiMajorAxis); +} + void PulsarAnimationWidget::resetParameters() { m_pulsarRotationAngle = 0.0f; diff --git a/src/pulsaranimationwidget.h b/src/pulsaranimationwidget.h index da6a31416ba6365f912aea4a978609fd881abe60..30a51954772f3cc9a0478879667e230ae2f7a39a 100644 --- a/src/pulsaranimationwidget.h +++ b/src/pulsaranimationwidget.h @@ -38,11 +38,12 @@ public: virtual ~PulsarAnimationWidget(); void setFramePerSecond(const unsigned int fps); - void setPulsarRotationDelta(const float frequency); - void setOrbitRotationDelta(const float frequency); - void setOrbitRadius(const float radius); + void setCompanionMass(const float mass); + void setPulsarMass(const float mass); + void setPulsarSpinFrequency(const float frequency); void setPulsarSpinAxisInclination(const int degrees); void setPulsarMagneticAxisInclination(const int degrees); + void setPulsarSemiMajorAxis(const float length); public slots: void runAnimation(); @@ -53,6 +54,9 @@ public slots: void showRotationAxes(bool enabled); +signals: + void pulsarSemiMajorAxisUpdated(double value); + protected: void initializeGL(); void resizeGL(int w, int h); @@ -62,11 +66,15 @@ protected: void mouseMoveEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event); + void updateOrbitPeriod(); + void updateOrbitRadii(); void updateCameraPosition(const int angleH, const int angleV, const float zoom); void resetParameters(); QTimer m_frameTimer; + GLUquadricObj *m_quadricCompanionOrbitPlane; + GLUquadricObj *m_quadricCompanion; GLUquadricObj *m_quadricPulsarOrbitPlane; GLUquadricObj *m_quadricPulsar; GLUquadricObj *m_quadricPulsarCone1; @@ -82,11 +90,14 @@ protected: float m_pulsarRotationAngle; float m_pulsarRotationDelta; + double m_orbitalPeriod; float m_orbitRotationAngle; float m_orbitRotationDelta; - float m_pulsarOrbitRadius; - float m_companionOrbitRadius; + float m_pulsarMass; + double m_pulsarSemiMajorAxis; + float m_companionMass; + double m_companionSemiMajorAxis; int m_pulsarSpinAxisInclination; int m_pulsarMagneticAxisInclination; diff --git a/src/pulsatingscience.cpp b/src/pulsatingscience.cpp index 82889e12e121a5c4a4da6b6cc85c3402f1cb39ee..836d9b21614d02f4f1a99a49a2b179eaa37cee39 100644 --- a/src/pulsatingscience.cpp +++ b/src/pulsatingscience.cpp @@ -41,11 +41,18 @@ PulsatingScience::PulsatingScience(QWidget *parent) : QMainWindow(parent) connect(ui.actionRotationAxes, SIGNAL(toggled(bool)), ui.pulsarGlWidget, SLOT(showRotationAxes(bool))); + connect(ui.pulsarGlWidget, SIGNAL(pulsarSemiMajorAxisUpdated(double)), + this, SLOT(updatePulsarSemiMajorAxisValue(double))); + + on_sliderPulsarSemiMajorAxis_valueChanged(ui.sliderPulsarSemiMajorAxis->value()); + + on_radioCompanionNS_toggled(true); + on_sliderPulsarMass_valueChanged(ui.sliderPulsarMass->value()); + on_sliderPulsarSpinFrequency_valueChanged(ui.sliderPulsarSpinFrequency->value()); on_sliderPulsarSpinAxisInclination_valueChanged(ui.sliderPulsarSpinAxisInclination->value()); on_sliderPulsarMagneticAxisInclination_valueChanged(ui.sliderPulsarMagneticAxisInclination->value()); - on_sliderOrbitRadius_valueChanged(ui.sliderOrbitRadius->value()); - on_sliderOrbitFrequency_valueChanged(ui.sliderOrbitFrequency->value()); + } PulsatingScience::~PulsatingScience() @@ -81,10 +88,40 @@ void PulsatingScience::on_pushStop_clicked() ui.pushStop->setEnabled(false); } +void PulsatingScience::on_radioCompanionWD_toggled(bool checked) +{ + if(checked) { + ui.pulsarGlWidget->setCompanionMass(0.6f); + ui.lcdCompanionMass->display(QString::number(0.6f, 'f', 1)); + } +} + +void PulsatingScience::on_radioCompanionSun_toggled(bool checked) +{ + if(checked) { + ui.pulsarGlWidget->setCompanionMass(1.0f); + ui.lcdCompanionMass->display(QString::number(1.0f, 'f', 1)); + } +} + +void PulsatingScience::on_radioCompanionNS_toggled(bool checked) +{ + if(checked) { + ui.pulsarGlWidget->setCompanionMass(1.4f); + ui.lcdCompanionMass->display(QString::number(1.4f, 'f', 1)); + } +} + +void PulsatingScience::on_sliderPulsarMass_valueChanged(int value) +{ + ui.pulsarGlWidget->setPulsarMass(value * 0.1f); + ui.lcdPulsarMass->display(QString::number(value * 0.1f, 'f', 1)); +} + void PulsatingScience::on_sliderPulsarSpinFrequency_valueChanged(int value) { - ui.pulsarGlWidget->setPulsarRotationDelta(value / 10.0); - ui.lcdPulsarSpinFrequency->display(QString::number(value / 10.0, 'f', 1)); + ui.pulsarGlWidget->setPulsarSpinFrequency(value * 0.1f); + ui.lcdPulsarSpinFrequency->display(QString::number(value * 0.1f, 'f', 1)); } void PulsatingScience::on_sliderPulsarSpinAxisInclination_valueChanged(int value) @@ -99,16 +136,10 @@ void PulsatingScience::on_sliderPulsarMagneticAxisInclination_valueChanged(int v ui.lcdPulsarMagneticAxisInclination->display(QString::number(value)); } -void PulsatingScience::on_sliderOrbitRadius_valueChanged(int value) +void PulsatingScience::on_sliderPulsarSemiMajorAxis_valueChanged(int value) { - ui.pulsarGlWidget->setOrbitRadius(value); - ui.lcdOrbitRadius->display(QString::number(value, 'f', 1)); -} - -void PulsatingScience::on_sliderOrbitFrequency_valueChanged(int value) -{ - ui.pulsarGlWidget->setOrbitRotationDelta(value / 10.0); - ui.lcdOrbitFrequency->display(QString::number(value / 10.0, 'f', 1)); + ui.pulsarGlWidget->setPulsarSemiMajorAxis(value * 0.001f); + ui.lcdPulsarSemiMajorAxis->display(QString::number(value * 0.001f, 'f', 1)); } void PulsatingScience::on_actionMenu_bar_toggled(bool checked) @@ -130,3 +161,8 @@ void PulsatingScience::on_actionAbout_activated() "Copyright © 2009 " "<a href=\"http://www.aei.mpg.de\">Max-Planck-Institut für Gravitationsphysik</a>"); } + +void PulsatingScience::updatePulsarSemiMajorAxisValue(double value) +{ + ui.sliderPulsarSemiMajorAxis->setValue(value * 1000.0); +} diff --git a/src/pulsatingscience.h b/src/pulsatingscience.h index 9a0cc6f6db552b91f7dd7212e9516b83f7858364..6b87b806bcb347e3be9dbec35bec98910dece760 100644 --- a/src/pulsatingscience.h +++ b/src/pulsatingscience.h @@ -39,16 +39,21 @@ public slots: void on_pushPause_clicked(); void on_pushStop_clicked(); + void on_radioCompanionWD_toggled(bool checked); + void on_radioCompanionSun_toggled(bool checked); + void on_radioCompanionNS_toggled(bool checked); + void on_sliderPulsarMass_valueChanged(int value); void on_sliderPulsarSpinFrequency_valueChanged(int value); void on_sliderPulsarSpinAxisInclination_valueChanged(int value); void on_sliderPulsarMagneticAxisInclination_valueChanged(int value); - void on_sliderOrbitRadius_valueChanged(int value); - void on_sliderOrbitFrequency_valueChanged(int value); + void on_sliderPulsarSemiMajorAxis_valueChanged(int value); void on_actionMenu_bar_toggled(bool checked); void on_actionStatus_bar_toggled(bool checked); void on_actionAbout_activated(); + void updatePulsarSemiMajorAxisValue(double value); + private: Ui::PulsatingScienceClass ui; }; diff --git a/src/pulsatingscience.ui b/src/pulsatingscience.ui index af87c4a71d2184359437f244a3efe87cc72903b3..3373bc1740e72eca72e326ea884d85dae2918703 100644 --- a/src/pulsatingscience.ui +++ b/src/pulsatingscience.ui @@ -5,7 +5,7 @@ <rect> <x>0</x> <y>0</y> - <width>629</width> + <width>693</width> <height>600</height> </rect> </property> @@ -38,14 +38,14 @@ <layout class="QGridLayout" name="gridLayout_3" > <item row="0" column="1" > <layout class="QGridLayout" name="gridLayout_2" > - <item row="0" column="0" > + <item row="2" column="0" > <widget class="QLabel" name="label" > <property name="text" > - <string>Spin Frequency:</string> + <string>Pulsar Spin Frequency:</string> </property> </widget> </item> - <item row="0" column="1" > + <item row="2" column="1" > <widget class="QSlider" name="sliderPulsarSpinFrequency" > <property name="statusTip" > <string>Use this slider to adjust the spin frequency</string> @@ -79,7 +79,7 @@ </property> </widget> </item> - <item row="0" column="2" > + <item row="2" column="2" > <widget class="QLCDNumber" name="lcdPulsarSpinFrequency" > <property name="numDigits" > <number>6</number> @@ -92,50 +92,15 @@ </property> </widget> </item> - <item row="3" column="0" > - <widget class="QLabel" name="label_2" > - <property name="text" > - <string>Orbit Radius:</string> - </property> - </widget> - </item> - <item row="4" column="0" > + <item row="5" column="0" > <widget class="QLabel" name="label_3" > <property name="text" > - <string>Orbit Frequency:</string> + <string>Pulsar Orbit Semi Major Axis:</string> </property> </widget> </item> - <item row="3" column="1" > - <widget class="QSlider" name="sliderOrbitRadius" > - <property name="statusTip" > - <string>Use this slider to adjust the orbit radius of the binary system</string> - </property> - <property name="minimum" > - <number>1</number> - </property> - <property name="maximum" > - <number>10</number> - </property> - <property name="pageStep" > - <number>2</number> - </property> - <property name="value" > - <number>4</number> - </property> - <property name="orientation" > - <enum>Qt::Horizontal</enum> - </property> - <property name="tickPosition" > - <enum>QSlider::TicksBelow</enum> - </property> - <property name="tickInterval" > - <number>1</number> - </property> - </widget> - </item> - <item row="3" column="2" > - <widget class="QLCDNumber" name="lcdOrbitRadius" > + <item row="5" column="2" > + <widget class="QLCDNumber" name="lcdPulsarSemiMajorAxis" > <property name="numDigits" > <number>6</number> </property> @@ -143,36 +108,23 @@ <enum>QLCDNumber::Flat</enum> </property> <property name="value" stdset="0" > - <double>4.000000000000000</double> + <double>5.000000000000000</double> </property> </widget> </item> - <item row="4" column="2" > - <widget class="QLCDNumber" name="lcdOrbitFrequency" > - <property name="numDigits" > - <number>6</number> - </property> - <property name="segmentStyle" > - <enum>QLCDNumber::Flat</enum> - </property> - <property name="value" stdset="0" > - <double>0.200000000000000</double> - </property> - </widget> - </item> - <item row="4" column="1" > - <widget class="QSlider" name="sliderOrbitFrequency" > + <item row="5" column="1" > + <widget class="QSlider" name="sliderPulsarSemiMajorAxis" > <property name="statusTip" > - <string>Use this slider to adjust the orbit frequency of the binary system</string> + <string>Use this slider to adjust the length of the semi major axis of the pulsar's elliptical orbit</string> </property> <property name="minimum" > - <number>0</number> + <number>1000</number> </property> <property name="maximum" > - <number>20</number> + <number>20000</number> </property> <property name="value" > - <number>2</number> + <number>5000</number> </property> <property name="orientation" > <enum>Qt::Horizontal</enum> @@ -181,25 +133,25 @@ <enum>QSlider::TicksBelow</enum> </property> <property name="tickInterval" > - <number>1</number> + <number>1000</number> </property> </widget> </item> - <item row="1" column="0" > + <item row="3" column="0" > <widget class="QLabel" name="label_5" > <property name="text" > - <string>Spin Axis Inclination:</string> + <string>Pulsar Spin Axis Inclination:</string> </property> </widget> </item> - <item row="2" column="0" > + <item row="4" column="0" > <widget class="QLabel" name="label_4" > <property name="text" > - <string>Magn. Axis Inclination:</string> + <string>Pulsar Magn. Axis Inclination:</string> </property> </widget> </item> - <item row="1" column="1" > + <item row="3" column="1" > <widget class="QSlider" name="sliderPulsarSpinAxisInclination" > <property name="statusTip" > <string>Use this slider to adjust the inclination of the spin axis with respect to the orbit axis</string> @@ -218,7 +170,7 @@ </property> </widget> </item> - <item row="1" column="2" > + <item row="3" column="2" > <widget class="QLCDNumber" name="lcdPulsarSpinAxisInclination" > <property name="numDigits" > <number>6</number> @@ -231,7 +183,7 @@ </property> </widget> </item> - <item row="2" column="1" > + <item row="4" column="1" > <widget class="QSlider" name="sliderPulsarMagneticAxisInclination" > <property name="statusTip" > <string>Use this slider to adjust the inclination of the magnetic pole axis with respect to the spin axis</string> @@ -250,7 +202,7 @@ </property> </widget> </item> - <item row="2" column="2" > + <item row="4" column="2" > <widget class="QLCDNumber" name="lcdPulsarMagneticAxisInclination" > <property name="numDigits" > <number>6</number> @@ -263,31 +215,138 @@ </property> </widget> </item> - <item row="1" column="3" > + <item row="3" column="3" > <widget class="QLabel" name="label_6" > <property name="text" > <string>deg</string> </property> </widget> </item> - <item row="2" column="3" > + <item row="4" column="3" > <widget class="QLabel" name="label_7" > <property name="text" > <string>deg</string> </property> </widget> </item> - <item row="0" column="3" > + <item row="2" column="3" > <widget class="QLabel" name="label_8" > <property name="text" > <string>Hz</string> </property> </widget> </item> - <item row="4" column="3" > + <item row="5" column="3" > <widget class="QLabel" name="label_9" > <property name="text" > - <string>Hz</string> + <string>AU</string> + </property> + </widget> + </item> + <item row="0" column="0" > + <widget class="QLabel" name="label_10" > + <property name="text" > + <string>Companion Class:</string> + </property> + </widget> + </item> + <item row="0" column="1" > + <layout class="QHBoxLayout" name="horizontalLayout" > + <item> + <widget class="QRadioButton" name="radioCompanionWD" > + <property name="text" > + <string>White Dwarf</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="radioCompanionSun" > + <property name="text" > + <string>Sun</string> + </property> + <property name="checked" > + <bool>false</bool> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="radioCompanionNS" > + <property name="text" > + <string>Neutron Star</string> + </property> + <property name="checked" > + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="0" column="2" > + <widget class="QLCDNumber" name="lcdCompanionMass" > + <property name="numDigits" > + <number>6</number> + </property> + <property name="segmentStyle" > + <enum>QLCDNumber::Flat</enum> + </property> + <property name="value" stdset="0" > + <double>1.400000000000000</double> + </property> + </widget> + </item> + <item row="0" column="3" > + <widget class="QLabel" name="label_11" > + <property name="text" > + <string>M<sub>0</sub></string> + </property> + </widget> + </item> + <item row="1" column="0" > + <widget class="QLabel" name="label_12" > + <property name="text" > + <string>Pulsar Mass:</string> + </property> + </widget> + </item> + <item row="1" column="1" > + <widget class="QSlider" name="sliderPulsarMass" > + <property name="statusTip" > + <string>Use this slider to adjust the pulsar mass</string> + </property> + <property name="minimum" > + <number>14</number> + </property> + <property name="maximum" > + <number>30</number> + </property> + <property name="pageStep" > + <number>2</number> + </property> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="tickPosition" > + <enum>QSlider::TicksBelow</enum> + </property> + </widget> + </item> + <item row="1" column="2" > + <widget class="QLCDNumber" name="lcdPulsarMass" > + <property name="numDigits" > + <number>6</number> + </property> + <property name="segmentStyle" > + <enum>QLCDNumber::Flat</enum> + </property> + <property name="value" stdset="0" > + <double>1.400000000000000</double> + </property> + </widget> + </item> + <item row="1" column="3" > + <widget class="QLabel" name="label_13" > + <property name="text" > + <string>M<sub>0</sub></string> </property> </widget> </item> @@ -380,7 +439,7 @@ <rect> <x>0</x> <y>0</y> - <width>629</width> + <width>693</width> <height>31</height> </rect> </property>