X-Git-Url: http://git.treefish.org/~alex/seamulator.git/blobdiff_plain/d05423ba0f9eec5f06b80705806eb36ccd067a7d..114b763f99b178bfa8a5adc0b214a425914fdc31:/src/seamulator.cpp?ds=sidebyside diff --git a/src/seamulator.cpp b/src/seamulator.cpp index 5c58ee0..aec8da1 100644 --- a/src/seamulator.cpp +++ b/src/seamulator.cpp @@ -1,3 +1,22 @@ +/** + * Copyright (C) 2016 Alexander Schmidt + * + * This file is part of Seamulator. + * + * Seamulator is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Seamulator is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Seamulator. If not, see . + */ + #include #include #include @@ -8,6 +27,7 @@ #include "sea.h" #include "seaview.h" +#include "synthesizer.h" #include "watersurface.h" const int INIT_WINDOW_POS_X{50}; @@ -21,6 +41,7 @@ const char WINDOW_TITLE[]{"seamulator"}; SeaPtr sea; WaterSurfacePtr surface; std::unique_ptr seaView; +std::unique_ptr synthesizer; struct Settings { double windSpeed; @@ -43,13 +64,14 @@ int main(int argc, char** argv) std::srand(std::time(0)); surface = std::make_shared(settings.latticeSize, - settings.latticeExtend); + settings.latticeExtend); sea = std::make_shared(surface, - settings.windSpeed, - settings.amplitudeFactor); + settings.windSpeed, + settings.amplitudeFactor); seaView = std::make_unique(settings.latticeExtend * 1.5, - INIT_VIEW_AZIMUTH, - INIT_VIEW_ALTITUDE); + INIT_VIEW_AZIMUTH, + INIT_VIEW_ALTITUDE); + synthesizer = std::make_unique(surface); glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE); @@ -72,11 +94,11 @@ Settings parseArguments(int argc, char** argv) { po::options_description desc("Available options"); desc.add_options() - ("help,h", "produce help message") + ("help,h", "show this help") ("windspeed,w", po::value()->default_value(10), - "wind speed given in m/s") - ("size,s", po::value()->default_value("small"), - "lattice size (small/large)") + "wind speed (m/s)") + ("size,s", po::value()->default_value('s'), + "lattice size (s|l)") ("amplitude,a", po::value()->default_value(1), "amplitude multiplicator") ; @@ -94,7 +116,7 @@ Settings parseArguments(int argc, char** argv) settings.windSpeed = vm["windspeed"].as(); - if (vm["size"].as() == "large") { + if (vm["size"].as() == 'l') { settings.latticeSize = 256; settings.latticeExtend = 20; settings.amplitudeFactor = vm["amplitude"].as() * 0.00000004; @@ -115,6 +137,7 @@ void glDisplayFunc() seaView->setupView(); sea->update(); surface->draw(); + synthesizer->tick(); glutSwapBuffers(); glutPostRedisplay();