Loading...
Searching...
No Matches
Atmosphere.hh
Go to the documentation of this file.
1/*
2 * Copyright 2018 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 SDF_ATMOSPHERE_HH_
18#define SDF_ATMOSPHERE_HH_
19
20#include <ignition/math/Temperature.hh>
21#include "sdf/Element.hh"
22#include "sdf/Types.hh"
23#include "sdf/sdf_config.h"
24#include "sdf/system_util.hh"
25
26namespace sdf
27{
28 // Inline bracket to help doxygen filtering.
29 inline namespace SDF_VERSION_NAMESPACE {
30 //
33 enum class AtmosphereType
34 {
36 ADIABATIC = 0,
37 };
38
39 // Forward declarations.
40 class AtmospherePrivate;
41
47 {
49 public: Atmosphere();
50
53 public: Atmosphere(const Atmosphere &_atmosphere);
54
57 public: Atmosphere(Atmosphere &&_atmosphere) noexcept;
58
62 public: Atmosphere &operator=(Atmosphere &&_atmosphere);
63
67 public: Atmosphere &operator=(const Atmosphere &_atmosphere);
68
70 public: ~Atmosphere();
71
78 public: Errors Load(ElementPtr _sdf);
79
82 public: AtmosphereType Type() const;
83
86 public: void SetType(const AtmosphereType _type);
87
90 public: ignition::math::Temperature Temperature() const;
91
94 public: void SetTemperature(const ignition::math::Temperature &_temp);
95
99 public: double TemperatureGradient() const;
100
104 public: void SetTemperatureGradient(const double _gradient);
105
108 public: double Pressure() const;
109
112 public: void SetPressure(const double _pressure);
113
118 public: bool operator==(const Atmosphere &_atmosphere);
119
121 private: AtmospherePrivate *dataPtr = nullptr;
122 };
123 }
124}
125#endif
The Atmosphere class contains information about an atmospheric model and related parameters such as t...
Definition Atmosphere.hh:47
Errors Load(ElementPtr _sdf)
Load the atmosphere based on a element pointer.
void SetTemperatureGradient(const double _gradient)
Set the temperature gradient with respect to increasing altitude in units of K/m.
Atmosphere & operator=(const Atmosphere &_atmosphere)
Copy assignment operator.
void SetType(const AtmosphereType _type)
Set the type of the atmospheric model.
double TemperatureGradient() const
Get the temperature gradient with respect to increasing altitude in units of K/m.
ignition::math::Temperature Temperature() const
Get the temperature at sea level.
Atmosphere(const Atmosphere &_atmosphere)
Copy constructor.
Atmosphere(Atmosphere &&_atmosphere) noexcept
Move constructor.
Atmosphere()
Default constructor.
void SetTemperature(const ignition::math::Temperature &_temp)
Set the temperature at sea level.
void SetPressure(const double _pressure)
Set the pressure at sea level in pascals.
~Atmosphere()
Destructor.
bool operator==(const Atmosphere &_atmosphere)
Equality operator that returns true if this atmosphere instance equals the given atmosphere instance.
Atmosphere & operator=(Atmosphere &&_atmosphere)
Move assignment operator.
double Pressure() const
Get the pressure at sea level in pascals.
AtmosphereType Type() const
Get the type of the atmospheric model.
std::vector< Error > Errors
A vector of Error.
Definition Types.hh:89
AtmosphereType
The set of atmosphere model types.
Definition Atmosphere.hh:34
std::shared_ptr< Element > ElementPtr
Definition Element.hh:53
namespace for Simulation Description Format parser
Definition Actor.hh:33
#define SDFORMAT_VISIBLE
Use to represent "symbol visible" if supported.
Definition system_util.hh:48