diff --git a/src/pulsaranimationwidget.cpp b/src/pulsaranimationwidget.cpp index 8242228435d242201abc53ce74aa38d8aa416aba..1497f299ad1718ad5ae490860110debcb4bacd93 100644 --- a/src/pulsaranimationwidget.cpp +++ b/src/pulsaranimationwidget.cpp @@ -53,8 +53,8 @@ PulsarAnimationWidget::PulsarAnimationWidget(QWidget *parent) : connect(&m_frameTimer, SIGNAL(timeout()), this, SLOT(updateFrame())); // initialize quadric pointers - m_quadricCompanionOrbitPlane = NULL; - m_quadricCompanion = NULL; + m_quadricVirgoh = NULL; + m_quadricVirgov = NULL; m_quadricPulsarOrbitPlane = NULL; m_quadricPulsar = NULL; m_quadricLLOh = NULL; @@ -78,7 +78,7 @@ PulsarAnimationWidget::PulsarAnimationWidget(QWidget *parent) : // initial parameters (have to match GUI!) m_LHOAngle = 180; m_LLOAngle = -100; - m_VirgoAngle = 0; + m_VirgoAngle = 165; m_pulsarRadius = 3.0; m_pulsarSpinAxisInclination = 0.0; @@ -116,8 +116,8 @@ PulsarAnimationWidget::PulsarAnimationWidget(QWidget *parent) : PulsarAnimationWidget::~PulsarAnimationWidget() { - if(m_quadricCompanionOrbitPlane) gluDeleteQuadric(m_quadricCompanionOrbitPlane); - if(m_quadricCompanion) gluDeleteQuadric(m_quadricCompanion); + if(m_quadricVirgoh) gluDeleteQuadric(m_quadricVirgoh); + if(m_quadricVirgov) gluDeleteQuadric(m_quadricVirgov); if(m_quadricPulsarOrbitPlane) gluDeleteQuadric(m_quadricPulsarOrbitPlane); if(m_quadricPulsar) gluDeleteQuadric(m_quadricPulsar); if(m_quadricLLOh) gluDeleteQuadric(m_quadricLLOh); @@ -161,8 +161,8 @@ void PulsarAnimationWidget::initializeGL() glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_BLEND); - m_quadricCompanionOrbitPlane = gluNewQuadric(); - m_quadricCompanion = gluNewQuadric(); + m_quadricVirgoh = gluNewQuadric(); + m_quadricVirgov = gluNewQuadric(); m_quadricPulsarOrbitPlane = gluNewQuadric(); m_quadricPulsar = gluNewQuadric(); m_quadricLLOh = gluNewQuadric(); @@ -172,8 +172,8 @@ void PulsarAnimationWidget::initializeGL() m_quadricLHOv = gluNewQuadric(); m_quadricLHOh = gluNewQuadric(); - gluQuadricNormals(m_quadricCompanionOrbitPlane, GLU_SMOOTH); - gluQuadricNormals(m_quadricCompanion, GLU_SMOOTH); + gluQuadricNormals(m_quadricVirgoh, GLU_SMOOTH); + gluQuadricNormals(m_quadricVirgov, GLU_SMOOTH); gluQuadricNormals(m_quadricPulsarOrbitPlane, GLU_SMOOTH); gluQuadricNormals(m_quadricPulsar, GLU_SMOOTH); gluQuadricNormals(m_quadricLLOh, GLU_SMOOTH); @@ -358,6 +358,33 @@ void PulsarAnimationWidget::paintGL() } glPopMatrix(); + // draw Virgo + glPushMatrix(); + { + glColor3f(1.0f, 1.0f, 1.0f); + + glRotatef(50, 0.0, 1.0, 0.0); + glRotatef(-43, 1.0, 0.0, 0.0); + glTranslatef(0.0, 0.0, m_pulsarRadius); + glRotatef(m_VirgoAngle, 0.0, 0.0, 1.0); + glPushMatrix(); + { + glRotatef(90, 0.0, 1.0, 0.0); + gluCylinder(m_quadricVirgoh, 0.010, 0.010, 0.20, 32, 1); + } + glPopMatrix(); + + glPushMatrix(); + { + glRotatef(90, 0.0, 1.0, 0.0); + glRotatef(90, 1.0, 0.0, 0.0); + glColor3f(0.5f, 1.0f, 0.5f); + gluCylinder(m_quadricVirgov, 0.010, 0.010, 0.20, 32, 1); + } + glPopMatrix(); + } + glPopMatrix(); + // draw source glPushMatrix(); { @@ -620,7 +647,7 @@ void PulsarAnimationWidget::setLLOAngle(const double degrees) void PulsarAnimationWidget::setVirgoAngle(const int degrees) { - m_VirgoAngle = degrees; + m_VirgoAngle = degrees + 165; updatePulseProfile(); updateGL(); diff --git a/src/pulsaranimationwidget.h b/src/pulsaranimationwidget.h index bbaaf9120294c7445f8d2bf5d963fecf693abccc..9aadbb89087221aa2c0dda8fa943e66509a09195 100644 --- a/src/pulsaranimationwidget.h +++ b/src/pulsaranimationwidget.h @@ -90,8 +90,8 @@ private: QTimer m_frameTimer; - GLUquadricObj *m_quadricCompanionOrbitPlane; - GLUquadricObj *m_quadricCompanion; + GLUquadricObj *m_quadricVirgoh; + GLUquadricObj *m_quadricVirgov; GLUquadricObj *m_quadricPulsarOrbitPlane; GLUquadricObj *m_quadricPulsar; GLUquadricObj *m_quadricLLOh; diff --git a/src/pulsatingscience.cpp b/src/pulsatingscience.cpp index 36bf339e903b4b33fb376730ddddc21c7be75707..776bd8cf791d853b1e2d332fa52ed500ae8ff973 100644 --- a/src/pulsatingscience.cpp +++ b/src/pulsatingscience.cpp @@ -216,6 +216,7 @@ void PulsatingScience::on_sliderLLOAngle_valueChanged(int value) void PulsatingScience::on_sliderVirgoAngle_valueChanged(int value) { + ui.pulsarGlWidget->setVirgoAngle(value); ui.lcdVirgoAngle->display(QString::number(value)); }