diff options
author | jjesswan <90643397+jjesswan@users.noreply.github.com> | 2024-04-09 22:19:19 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-09 22:19:19 -0400 |
commit | 8d27ce5bd6902ba515a1e3bad5f2e4d5abd825d3 (patch) | |
tree | c6c3ecf092310b242d5df5245c43b347ebba242e /src/ocean/ocean.cpp | |
parent | 7a8d0d8bc2572707c9d35006f30ea835c86954b0 (diff) | |
parent | 33da3ed6ca5d92e9a29935150b01b62daef75a04 (diff) |
Merge pull request #1 from Seb-Park/jess
add update loop/wave animation
Diffstat (limited to 'src/ocean/ocean.cpp')
-rw-r--r-- | src/ocean/ocean.cpp | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/src/ocean/ocean.cpp b/src/ocean/ocean.cpp index f70a553..1b0e23c 100644 --- a/src/ocean/ocean.cpp +++ b/src/ocean/ocean.cpp @@ -10,18 +10,24 @@ ocean::ocean() { initial_h = std::vector<std::pair<double, double>>(); + current_h = std::vector<std::pair<double, double>>(); + // initialize the initial height fields for (int i = 0; i < N; i++) { initial_h.push_back(amplitude_0(i)); + current_h.push_back(initial_h[i]); } } +void ocean::updateVertexAmplitudes(double t){ + for (int i = 0; i < N; i++){ + current_h[i] = amplitude_t(t, i); + } +} + /* Maps the 1D k-index into it's 2D waveform vector */ -std::pair<double, double> ocean::k_index_to_k_vector - ( - int k_index - ) +std::pair<double, double> ocean::k_index_to_k_vector(int k_index) { // get the x and z indices int x = k_index % length; @@ -200,11 +206,12 @@ std::pair<double, double> ocean::amplitude_t // add the real and imaginary part together from both h_0 and h_0_conjugate double real = // h+0 real - h_0.first * exp_positive.first - - h_0.second * exp_positive.second + (h_0.first * exp_positive.first) + - (h_0.second * exp_positive.second) // h_0_conjugate real - + h_0_conjugate.first * exp_negative.first - - h_0_conjugate.second * exp_negative.second; + + (h_0_conjugate.first * exp_negative.first) + - (h_0_conjugate.second * exp_negative.second); + double imag = // h_0 imaginary h_0.first * exp_positive.second @@ -225,9 +232,14 @@ std::vector<Eigen::Vector3f> ocean::get_vertices() double k_x = k.first; double k_z = k.second; - double amplitude = initial_h[i].first; + //if (i < length) + double amplitude = current_h[i].first; + if (i < length) amplitude = initial_h[i].first; + + + //if (i==2) std::cout << amplitude << std::endl; - std::cout << "k_x: " << k_x << " k_z: " << k_z << " amplitude: " << amplitude << std::endl; + //std::cout << "k_x: " << k_x << " k_z: " << k_z << " amplitude: " << amplitude << std::endl; vertices.emplace_back(k_x, amplitude, k_z); } @@ -251,8 +263,8 @@ std::vector<Eigen::Vector3i> ocean::get_faces() int i3 = i + length; int i4 = i + length + 1; - faces.emplace_back(i1, i2, i3); - faces.emplace_back(i2, i3, i4); + faces.emplace_back(i2, i1, i3); + faces.emplace_back(i2, i3, i4); } } return faces; |