Virtual Testbed
Ship dynamics simulator for extreme conditions
src
vtestbed
gui
GerstnerGeneratorPanel.hh
1
#ifndef VTESTBED_GUI_GERSTNERGENERATORPANEL_HH
2
#define VTESTBED_GUI_GERSTNERGENERATORPANEL_HH
3
4
#include <vtestbed/gui/GeneratorPanel.hh>
5
#include <vtestbed/gui/PlainWavePanel.hh>
6
#include <vtestbed/gui/types.hh>
7
#include <vtestbed/core/gerstner.hh>
8
9
namespace
vtb
{
10
11
namespace
gui {
12
13
template
<
class
T>
14
class
GerstnerGeneratorPanel
:
public
GeneratorPanel
<T> {
15
16
private
:
17
using
base_type
=
GeneratorPanel<T>
;
18
using
typename
base_type::testbed_type
;
19
20
public
:
21
using
amplitude_type
=
vtb::core::Amplitude<T>
;
22
using
length_type
=
vtb::core::Length<T>
;
23
using
direction_type
=
vtb::core::Direction<T>
;
24
using
policy_type = vtb::core::Policy;
25
using
solver_type
=
vtb::core::Gerstner_solver<T,3>
;
26
27
private
:
28
std::vector<PlainWavePanel<T>
> _wave_panels;
29
bool
_diffraction =
false
;
30
bool
_radiation =
false
;
31
bool
_waterline_only =
true
;
32
33
public
:
34
35
void
init(
const
testbed_type
& testbed)
override
;
36
void
draw()
override
;
37
std::any generator(policy_type policy)
override
;
38
void
apply();
39
40
};
41
42
}
43
}
44
45
#endif // vim:filetype=cpp
vtb::core::Gerstner_solver< T, 3 >
vtb::core::Direction
Definition:
core/types.hh:55
vtb::gui::GerstnerGeneratorPanel
Definition:
GerstnerGeneratorPanel.hh:14
vtb
Main namespace.
Definition:
convert.hh:9
std::vector
vtb::core::Testbed< T, 3 >
vtb::core::Amplitude
Definition:
core/types.hh:52
vtb::gui::GeneratorPanel
Definition:
GeneratorPanel.hh:13
vtb::core::Length
Definition:
core/types.hh:58
Generated by
1.8.15