MaterialDensity.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_COMMON_MATERIALDENSITY_HH_
18 #define _GAZEBO_COMMON_MATERIALDENSITY_HH_
19 
20 #include <string>
21 #include <map>
22 #include <tuple>
23 #include <ignition/math/Helpers.hh>
24 #include "gazebo/util/system.hh"
25 
26 namespace gazebo
27 {
28  namespace common
29  {
33  enum class MaterialType
34  {
38  BEGIN = 0,
39 
41  STYROFOAM = BEGIN,
42 
44  PINE,
45 
47  WOOD,
48 
50  OAK,
51 
53  ICE,
54 
56  WATER,
57 
59  PLASTIC,
60 
62  CONCRETE,
63 
65  ALUMINUM,
66 
69 
72 
74  IRON,
75 
77  BRASS,
78 
80  COPPER,
81 
83  TUNGSTEN,
84 
88  END
89  };
90 
92  class GZ_COMMON_VISIBLE MaterialDensity
93  {
96  public: static const std::map<MaterialType, double> &Materials();
97 
102  public: static double Density(const std::string &_material);
103 
107  public: static double Density(const MaterialType _material);
108 
117  public: static std::tuple<MaterialType, double> Nearest(
118  const double _value,
119  const double _epsilon = ignition::math::MAX_D);
120 
127  public: static MaterialType NearestMaterial(const double _value,
128  const double _epsilon = ignition::math::MAX_D);
129 
131  private: static std::map<MaterialType, double> materials;
132  };
133  }
134 }
135 #endif
Aluminum, density = 2700.0 kg/m^3.
Oak, density = 710.0 kg/m^3.
Plastic, density = 1175.0 kg/m^3.
MaterialType
Types of materials.
Definition: MaterialDensity.hh:33
Water, density = 1000.0 kg/m^3.
Encapsulates density types.
Definition: MaterialDensity.hh:92
Iron, density = 7870.0 kg/m^3.
Concrete, density = 2000.0 kg/m^3.
Steel alloy, density = 7600.0 kg/m^3.
Ice, density = 916.0 kg/m^3.
Copper, density = 8940.0 kg/m^3.
Tungsten, density = 19300.0 kg/m^3.
Brass, density = 8600.0 kg/m^3.
Stainless steel, density = 7800.0 kg/m^3.
Styrofoam, density = 75.0 kg/m^3.
Pine, density = 373.0 kg/m^3.
Wood, density = 700.0 kg/m^3.