3 #ifndef __sim_vel_model_hpp
4 #define __sim_vel_model_hpp
9 #include <s2proc/sim_service.hpp>
10 #include <s2proc/sim_vm_layers.hpp>
23 template <
typename ParamsT>
28 virtual ~VelModel() {}
34 virtual const ParamsT&
operator()(
const Point2D &coords)
const = 0;
44 template <
typename ParamsT,
typename LayerT>
66 virtual const LayerT&
layer(
const size_t id)
const = 0;
72 virtual const ParamsT&
params(
const size_t id)
const = 0;
80 virtual void clear() = 0;
88 template <
typename ParamsT>
125 virtual const ParamsT&
params(
const size_t id)
const;
133 virtual void clear();
138 std::list<std::pair<VmLayer1D2D, ParamsT> >
m_lays;
141 static const ParamsT m_dummy_params;
149 #include <s2proc/sim_vel_model_impl.hpp>
virtual void removeLayer(const size_t id)=0
virtual size_t layersNum() const
Definition: sim_vel_model_impl.hpp:70
static const VmLayer1D2D m_dummy_layer
Definition: sim_vel_model.hpp:144
Definition: sim_vm_layers.hpp:16
virtual const ParamsT & operator()(const Point2D &coords) const
Definition: sim_vel_model_impl.hpp:18
virtual const LayerT & layer(const size_t id) const =0
virtual const ParamsT & params(const size_t id) const =0
virtual const ParamsT & params(const size_t id) const
Definition: sim_vel_model_impl.hpp:92
Definition: sim_vel_model.hpp:89
virtual void clear()
Definition: sim_vel_model_impl.hpp:133
Definition: sim_point_2d.hpp:16
bool sim(size_t n, const Trace::AmplT *x, const Trace::AmplT *y, Trace::AmplT &s)
virtual const ParamsT & operator()(const Point2D &coords) const =0
Definition: sim_fdm_simulator_iso.hpp:20
virtual void removeLayer(const size_t id)
Definition: sim_vel_model_impl.hpp:108
Definition: sim_vel_model.hpp:45
std::list< std::pair< VmLayer1D2D, ParamsT > > m_lays
Definition: sim_vel_model.hpp:138
virtual size_t layersNum() const =0
virtual void appendLayer(const LayerT &layer, const ParamsT ¶ms)=0
virtual void appendLayer(const VmLayer1D2D &layer, const ParamsT ¶ms)
Definition: sim_vel_model_impl.hpp:44
virtual const VmLayer1D2D & layer(const size_t id) const
Definition: sim_vel_model_impl.hpp:76