]> git.treefish.org Git - seamulator.git/blobdiff - sea.h
Implemented generation of fourier amplitudes
[seamulator.git] / sea.h
diff --git a/sea.h b/sea.h
index 48307ee540e68741669cd75fb67a0725bb6ffcd3..6e24ac3bd3a5f859198ab6329015601c7bdb3d73 100644 (file)
--- a/sea.h
+++ b/sea.h
@@ -1,7 +1,11 @@
 #pragma once
 
+#include <complex>
+#include <random>
+
 #include "seafwd.h"
 
+#include "complexpair.h"
 #include "watersurfacefwd.h"
 
 class Sea
@@ -11,5 +15,20 @@ class Sea
   void update();
 
  private:
+  static const double PHILLIPS_CONSTANT;
+  static const double GRAVITATIONAL_CONSTANT;
+
   WaterSurfacePtr m_surface;
+  double m_windDirection[2];
+  double m_windSpeed;
+  std::random_device m_randomDevice;
+  std::mt19937 m_randomGenerator;
+  std::normal_distribution<> m_normalDistribution;
+  std::vector<ComplexPair> m_fourierAmplitudes;
+
+  double phillipsSpectrum(double k_x, double k_y) const;
+  ComplexPair generateFourierAmplitude(double k_x, double k_y);
+  ComplexPair& fourierAmplitudeAt(int n, int m);
+  void generateFourierAmplitudes();
+  double spatialFrequencyForIndex(int n) const;
 };