X-Git-Url: http://git.treefish.org/~alex/seamulator.git/blobdiff_plain/ce5cb9e3b065ec3eabd2ffa79923043fdfb2087a..40fe15ee6190427f3bbc5db4ff640442626cc3bb:/seamulator.cpp diff --git a/seamulator.cpp b/seamulator.cpp deleted file mode 100644 index c5f7936..0000000 --- a/seamulator.cpp +++ /dev/null @@ -1,85 +0,0 @@ -#include -#include -#include - -#include - -#include "sea.h" -#include "seaview.h" -#include "watersurface.h" - -const int LATTICE_SIZE{128}; -const double LATTICE_EXTEND{10}; -const int INIT_WINDOW_POS_X{50}; -const int INIT_WINDOW_POS_Y{50}; -const int INIT_WINDOW_WIDTH{800}; -const int INIT_WINDOW_HEIGHT{600}; -const double INIT_VIEW_DISTANCE{LATTICE_EXTEND * 1.5}; -const double INIT_VIEW_AZIMUTH{0}; -const double INIT_VIEW_ALTITUDE{M_PI / 4}; -const char WINDOW_TITLE[]{"seamulator"}; - -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_EXTEND); - sea = std::make_shared(surface); - seaView = std::make_unique(INIT_VIEW_DISTANCE, INIT_VIEW_AZIMUTH, - INIT_VIEW_ALTITUDE); - - glutInit(&argc, argv); - glutInitDisplayMode(GLUT_DOUBLE); - glutInitWindowSize(INIT_WINDOW_WIDTH, INIT_WINDOW_HEIGHT); - glutInitWindowPosition(INIT_WINDOW_POS_X, INIT_WINDOW_POS_Y); - glutCreateWindow(WINDOW_TITLE); - 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); -}