X-Git-Url: http://git.treefish.org/~alex/seamulator.git/blobdiff_plain/1c3ed2ee1ad119ea79307299696b623261e08d8a..40fe15ee6190427f3bbc5db4ff640442626cc3bb:/seamulator.cpp?ds=inline diff --git a/seamulator.cpp b/seamulator.cpp deleted file mode 100644 index d3ac1c4..0000000 --- a/seamulator.cpp +++ /dev/null @@ -1,77 +0,0 @@ -#include -#include -#include - -#include - -#include "sea.h" -#include "seaview.h" -#include "watersurface.h" - -const int LATTICE_SIZE = 10; -const double LATTICE_UNIT = 1; - -SeaPtr sea; -WaterSurfacePtr surface; -std::unique_ptr seaView; - -void glDisplayFunc(); -void glReshapeFunc(int width, int height); -void glMouseFunc(int button, int state, int x, int y); -void glMotionFunc(int x, int y); - -int main(int argc, char** argv) -{ - std::srand(std::time(0)); - - surface = std::make_shared(LATTICE_SIZE, LATTICE_UNIT); - sea = std::make_shared(surface); - seaView = std::make_unique(LATTICE_SIZE * LATTICE_UNIT * 1.5, - 0, M_PI/4); - - glutInit(&argc, argv); - glutInitDisplayMode(GLUT_DOUBLE); - glutInitWindowSize(300, 300); - glutInitWindowPosition(100, 100); - glutCreateWindow("seamulator"); - glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); - - glutDisplayFunc(glDisplayFunc); - glutReshapeFunc(glReshapeFunc); - glutMouseFunc(glMouseFunc); - glutMotionFunc(glMotionFunc); - - glutMainLoop(); - - return 0; -} - -void glDisplayFunc() -{ - glClear(GL_COLOR_BUFFER_BIT); - - seaView->setupView(); - sea->update(); - surface->draw(); - - glutSwapBuffers(); - glutPostRedisplay(); -} - -void glReshapeFunc(int width, int height) -{ - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluPerspective(50.0, ((float)width/(float)height), 0, 1000.0); - glViewport(0, 0, width, height); -} - -void glMouseFunc(int button, int state, int x, int y) -{ - seaView->onMouseEvent(button, state, x, y); -} - -void glMotionFunc(int x, int y) -{ - seaView->onMouseMove(x, y); -}