WavefieldEntity.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2019 Rhys Mainwaring
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16 */
17 
21 
22 #ifndef _WAVE_GAZEBO_PLUGINS_WAVEFIELD_ENTITY_HH_
23 #define _WAVE_GAZEBO_PLUGINS_WAVEFIELD_ENTITY_HH_
24 
25 #include <memory>
26 #include <string>
27 #include <gazebo/gazebo.hh>
28 #include <gazebo/physics/Base.hh>
29 
30 namespace asv
31 {
33 // WavefieldEntity
34 
35  class WaveParameters;
36 
39  class WavefieldEntityPrivate;
40 
42  class GZ_PHYSICS_VISIBLE WavefieldEntity : public gazebo::physics::Base
43  {
45  public: virtual ~WavefieldEntity();
46 
48  public: explicit WavefieldEntity(gazebo::physics::BasePtr _parent);
49 
51  public: virtual void Load(sdf::ElementPtr _sdf);
52 
54  public: virtual void Fini();
55 
57  public: virtual void Init();
58 
60  public: virtual void Reset();
61 
63  public: virtual void Update();
64 
66  std::shared_ptr<const WaveParameters> GetWaveParams() const;
67 
72  public: static std::string MakeName(const std::string& _parentName);
73 
76  private: std::shared_ptr<WavefieldEntityPrivate> data;
77  };
78 }
79 
80 #endif // _WAVE_GAZEBO_PLUGINS_WAVEFIELD_ENTITY_HH_
std::shared_ptr< WavefieldEntityPrivate > data
A class to manage a wave field that can be accessed from the World.
Definition: Geometry.hh:28


wave_gazebo_plugins
Author(s): Rhys Mainwaring
autogenerated on Thu May 7 2020 03:54:44