23 #ifndef _ASV_WAVE_SIM_GAZEBO_PLUGINS_WAVEFIELD_HH_    24 #define _ASV_WAVE_SIM_GAZEBO_PLUGINS_WAVEFIELD_HH_    26 #include <ignition/math/Vector2.hh>    27 #include <ignition/math/Vector3.hh>    54   class WaveParametersPrivate;
    69     public: 
void SetFromSDF(sdf::Element& _sdf);
    72     public: 
size_t Number() 
const;
    76     public: 
double Angle() 
const;
    80     public: 
double Scale() 
const;
    84     public: 
double Steepness() 
const;
    87     public: 
double AngularFrequency() 
const;
    90     public: 
double Amplitude() 
const;
    93     public: 
double Period() 
const;
    96     public: 
double Phase() 
const;
    99     public: 
double Wavelength() 
const;
   102     public: 
double Wavenumber() 
const;
   105     public: 
float Tau() 
const;
   108     public: 
float Gain() 
const;
   112     public: ignition::math::Vector2d Direction() 
const;
   117     public: 
void SetNumber(
size_t _number);
   123     public: 
void SetAngle(
double _angle);
   129     public: 
void SetScale(
double _scale);
   135     public: 
void SetSteepness(
double _steepness);
   140     public: 
void SetAmplitude(
double _amplitude);
   145     public: 
void SetPeriod(
double _period);
   150     public: 
void SetPhase(
double _phase);
   155     public: 
void SetTau(
double _tau);
   160     public: 
void SetGain(
double _gain);
   165     public: 
void SetDirection(
const ignition::math::Vector2d& _direction);
   168     public: 
const std::vector<double>& AngularFrequency_V() 
const;
   171     public: 
const std::vector<double>& Amplitude_V() 
const;
   174     public: 
const std::vector<double>& Phase_V() 
const;
   177     public: 
const std::vector<double>& Steepness_V() 
const;
   180     public: 
const std::vector<double>& Wavenumber_V() 
const;
   183     public: 
const std::vector<ignition::math::Vector2d>& Direction_V() 
const;
   186     public: 
void DebugPrint() 
const;
   190     private: std::shared_ptr<WaveParametersPrivate> 
data;
   217     public: 
static double ComputeDepthDirectly(
   219       const ignition::math::Vector3d& _point,
   220       double time, 
double time_init = 0);
   226     public: 
static double ComputeDepthSimply(
   228       const ignition::math::Vector3d& _point,
   229             double time, 
double time_init = 0);
 A class to manage sampling depths from a wave field. 
std::shared_ptr< WaveParametersPrivate > data
A class to manage the parameters for generating a wave.