1 #ifndef VTESTBED_CORE_WAVY_SURFACE_GENERATOR_HH     2 #define VTESTBED_CORE_WAVY_SURFACE_GENERATOR_HH     6 #include <vtestbed/base/blitz.hh>     7 #include <vtestbed/core/grid.hh>     8 #include <vtestbed/core/types.hh>    25         template <
class T, 
int N>
    26         class Wavy_surface_generator {
    29             using grid_type = Grid<T,N>;
    30             using array_type = Array<T,N>;
    34             Wavy_surface_generator() = 
default;
    35             virtual ~Wavy_surface_generator() = 
default;
    36             Wavy_surface_generator(
const Wavy_surface_generator&) = 
default;
    37             Wavy_surface_generator& operator=(
const Wavy_surface_generator&) = 
default;
    40             generate(
const grid_type& grid) {
    41                 array_type result(grid.shape());
    42                 this->generate(grid, result);
    47             generate(
const grid_type& grid, array_type& result) = 0;
    50             operator()(
const grid_type& grid) {
    51                 return this->generate(grid);
    55             operator()(
const grid_type& grid, array_type& result) {
    56                 this->generate(grid, result);
    70 #endif // vim:filetype=cpp