]> git.treefish.org Git - seamulator.git/blobdiff - sea.h
Basically it's working
[seamulator.git] / sea.h
diff --git a/sea.h b/sea.h
index 6e24ac3bd3a5f859198ab6329015601c7bdb3d73..20f5d638d33479fd21d5b8daf0626e591d9926ac 100644 (file)
--- a/sea.h
+++ b/sea.h
@@ -1,8 +1,11 @@
 #pragma once
 
+#include <chrono>
 #include <complex>
 #include <random>
 
+#include <fftw3.h>
+
 #include "seafwd.h"
 
 #include "complexpair.h"
@@ -12,6 +15,9 @@ class Sea
 {
  public:
   Sea(WaterSurfacePtr surface);
+  ~Sea();
+  Sea(const Sea&) = delete;
+  Sea& operator=(const Sea&) = delete;
   void update();
 
  private:
@@ -25,10 +31,14 @@ class Sea
   std::mt19937 m_randomGenerator;
   std::normal_distribution<> m_normalDistribution;
   std::vector<ComplexPair> m_fourierAmplitudes;
+  fftw_complex *m_fftwIn, *m_fftwOut;
+  fftw_plan m_fftwPlan;
+  std::chrono::time_point<std::chrono::system_clock> m_startTime;
 
   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;
+  double getRuntime() const;
 };