AdiabaticAtmosphere.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016 Open Source Robotics Foundation
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 #ifndef GAZEBO_PHYSICS_ADIABATICATMOSPHERE_HH_
18 #define GAZEBO_PHYSICS_ADIABATICATMOSPHERE_HH_
19 
20 #include <memory>
21 #include <string>
22 
24 
25 #include "gazebo/util/system.hh"
26 
27 namespace gazebo
28 {
29  namespace physics
30  {
32  class AdiabaticAtmospherePrivate;
33 
36 
46  class GZ_PHYSICS_VISIBLE AdiabaticAtmosphere : public Atmosphere
47  {
50  public: explicit AdiabaticAtmosphere(physics::World &_world);
51 
53  public: virtual ~AdiabaticAtmosphere();
54 
55  // Documentation inherited
56  public: virtual void Load(sdf::ElementPtr _sdf);
57 
58  // Documentation inherited
59  public: virtual std::string Type() const;
60 
61  // Documentation inherited
62  protected: virtual void OnRequest(ConstRequestPtr &_msg);
63 
64  // Documentation inherited
65  protected: virtual void OnAtmosphereMsg(ConstAtmospherePtr &_msg);
66 
67  // Documentation inherited
68  public: virtual void SetTemperatureGradient(const double _gradient);
69 
70  // Documentation inherited
71  public: virtual double Temperature(const double _altitude = 0.0) const;
72 
73  // Documentation inherited
74  public: virtual double Pressure(const double _altitude = 0.0) const;
75 
76  // Documentation inherited
77  public: double MassDensity(const double _altitude = 0.0) const;
78 
79  // \brief Compute the adiabatic power used internally.
80  private: void ComputeAdiabaticPower();
81 
84  protected: std::unique_ptr<AdiabaticAtmospherePrivate> dataPtr;
85  };
87  }
88 }
89 #endif
Forward declarations for the common classes.
Definition: Animation.hh:26
The world provides access to all other object within a simulated environment.
Definition: World.hh:74
std::unique_ptr< AdiabaticAtmospherePrivate > dataPtr
Definition: AdiabaticAtmosphere.hh:84
Adiabatic atmosphere model based on the troposphere model in the Manual of the ICAO Standard Atmosphe...
Definition: AdiabaticAtmosphere.hh:46
This models a base atmosphere class to serve as a common interface to any derived atmosphere models...
Definition: Atmosphere.hh:42