+/**
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+
#include <ctime>
#include <cmath>
#include <iostream>
#include "sea.h"
#include "seaview.h"
+#include "synthesizer.h"
#include "watersurface.h"
const int INIT_WINDOW_POS_X{50};
SeaPtr sea;
WaterSurfacePtr surface;
std::unique_ptr<SeaView> seaView;
+std::unique_ptr<Synthesizer> synthesizer;
struct Settings {
double windSpeed;
std::srand(std::time(0));
surface = std::make_shared<WaterSurface>(settings.latticeSize,
- settings.latticeExtend);
+ settings.latticeExtend);
sea = std::make_shared<Sea>(surface,
- settings.windSpeed,
- settings.amplitudeFactor);
+ settings.windSpeed,
+ settings.amplitudeFactor);
seaView = std::make_unique<SeaView>(settings.latticeExtend * 1.5,
- INIT_VIEW_AZIMUTH,
- INIT_VIEW_ALTITUDE);
+ INIT_VIEW_AZIMUTH,
+ INIT_VIEW_ALTITUDE);
+ synthesizer = std::make_unique<Synthesizer>(surface);
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE);
seaView->setupView();
sea->update();
surface->draw();
+ synthesizer->tick();
glutSwapBuffers();
glutPostRedisplay();