#include #include #include #include #include "qtSpectrumDisplay.h" int axisMargins = 50; qtSpectrumDisplay::qtSpectrumDisplay(QWidget *parent) : QGLWidget(parent) { object = 0; xRot = 0; yRot = 0; zRot = 0; qtGreen = QColor::fromCmykF(0.40, 0.0, 1.0, 0.0); qtPurple = QColor::fromCmykF(0.39, 0.39, 0.0, 0.0); } qtSpectrumDisplay::~qtSpectrumDisplay() { makeCurrent(); glDeleteLists(object, 1); } QSize qtSpectrumDisplay::minimumSizeHint() const { return QSize(50, 50); } QSize qtSpectrumDisplay::sizeHint() const { return QSize(400, 400); } void qtSpectrumDisplay::initializeGL() { //qglClearColor(qtPurple.dark()); glClearColor(0.0, 0.0, 0.0, 0.0); //object = makeObject(); glShadeModel(GL_FLAT); glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); } void qtSpectrumDisplay::printWavenumber(int xPos) { int viewParams[4]; glGetIntegerv(GL_VIEWPORT, viewParams); float a = (float)xPos/(float)viewParams[2]; int wn = a * (nuMax - nuMin) + nuMin; cout< 0) { glColor3f(0.5, 0.5, 0.5); glBegin(GL_LINE_STRIP); float nu; for(unsigned int i=0; ipos(); if(event->buttons() & Qt::LeftButton) { printWavenumber(event->x()); } } void qtSpectrumDisplay::mouseMoveEvent(QMouseEvent *event) { lastPos = event->pos(); } void qtSpectrumDisplay::quad(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2, GLdouble x3, GLdouble y3, GLdouble x4, GLdouble y4) { qglColor(qtGreen); glVertex3d(x1, y1, -0.05); glVertex3d(x2, y2, -0.05); glVertex3d(x3, y3, -0.05); glVertex3d(x4, y4, -0.05); glVertex3d(x4, y4, +0.05); glVertex3d(x3, y3, +0.05); glVertex3d(x2, y2, +0.05); glVertex3d(x1, y1, +0.05); } void qtSpectrumDisplay::normalizeAngle(int *angle) { while (*angle < 0) *angle += 360 * 16; while (*angle > 360 * 16) *angle -= 360 * 16; }