X-Git-Url: http://git.treefish.org/~alex/seamulator.git/blobdiff_plain/d05423ba0f9eec5f06b80705806eb36ccd067a7d..3185fa3e31555b1b80edb81dc4e76a1d9856f6fb:/src/seamulator.cpp
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();