X-Git-Url: http://git.treefish.org/~alex/seamulator.git/blobdiff_plain/ce5cb9e3b065ec3eabd2ffa79923043fdfb2087a..40fe15ee6190427f3bbc5db4ff640442626cc3bb:/seaview.cpp?ds=sidebyside diff --git a/seaview.cpp b/seaview.cpp deleted file mode 100644 index 035f557..0000000 --- a/seaview.cpp +++ /dev/null @@ -1,62 +0,0 @@ -#include "seaview.h" - -#include - -#include - -SeaView::SeaView(double distance, double azimuth, double altitude) : - m_distance{distance}, - m_azimuth{azimuth}, - m_altitude{altitude} -{ -} - -void SeaView::onMouseEvent(int button, int state, int x, int y) -{ - if (button == 3 && state == 0) { - m_distance += m_distance*DISTANCE_MULTIPLIER; - glutPostRedisplay(); - } - else if (button == 4 && state == 0) { - m_distance -= m_distance*DISTANCE_MULTIPLIER; - glutPostRedisplay(); - } - else if (button == 0 && state == 0) { - m_mouseDownPos[0] = x; - m_mouseDownPos[1] = y; - m_mouseDownAzimuth = m_azimuth; - m_mouseDownAltitude = m_altitude; - } -} - -void SeaView::onMouseMove(int x, int y) -{ - m_altitude = - fmod(m_mouseDownAltitude + - (double)((y - m_mouseDownPos[1]) * - 2*M_PI / glutGet(GLUT_WINDOW_HEIGHT)), - (double)(2*M_PI)); - - m_azimuth = - fmod(m_mouseDownAzimuth + - (double)((x - m_mouseDownPos[0]) * - 2*M_PI / glutGet(GLUT_WINDOW_WIDTH)), - (double)(2*M_PI)); - - glutPostRedisplay(); -} - -void SeaView::setupView() const -{ - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - - const double eyePos[3] = - {m_distance * cos(m_altitude) * sin(m_azimuth), - m_distance * cos(m_altitude) * cos(m_azimuth), - m_distance * sin(m_altitude)}; - - gluLookAt(eyePos[0], eyePos[1], eyePos[2], - 0, 0, 0, - 0, 0, 1); -}