4#include <marenv/wave/WaveComponents.h>
52 std::string waveTheoryName);
80 return m_snapshot.load();
90 m_snapshot.store(std::move(snap));
97 std::atomic<std::shared_ptr<WaveSnapshot>> m_snapshot;
Parent class for linear wave theories used to simulate gravity waves.
Definition LinearWaveTheory.h:43
void BlendInPlace(WaveComponentData &other, double alpha) override
std::string m_waveTheoryName
The name of the wave theory.
Definition LinearWaveTheory.h:94
std::shared_ptr< WaveSnapshot > LoadSnapshot() const
Definition LinearWaveTheory.h:78
WaveField::InsecureDatapointers GetWaveComponents() const override
void StoreSnapshot(std::shared_ptr< WaveSnapshot > snap)
Definition LinearWaveTheory.h:88
WaveComponentData GetWaveComponentsCopy() const override
std::string SpectrumName() const override
double MaxWaveElevation() const override
Sum of |zeta_A| over the published components, times 1 + 1e-10 (see WaveField::MaxWaveElevation).
std::string WaveTheoryName() const override
std::string m_spectrumName
The name of the wave spectrum.
Definition LinearWaveTheory.h:93
LinearWaveTheory(std::shared_ptr< WaveComponents > waveComponents, std::string waveTheoryName)
The interface for an representing waves.
Definition WaveField.h:35
Details of a wave component.
Definition WaveField.h:23
Pointers to wave component details.
Definition WaveField.h:40
Definition LinearWaveTheory.h:25
WaveSnapshot(std::shared_ptr< WaveComponents > wc)
Definition LinearWaveTheory.h:33
std::shared_ptr< WaveComponents > waveComponents
Shared pointer to wave component data.
Definition LinearWaveTheory.h:26