Gazebo Common
API Reference
6.0.1
insert_drive_file
Tutorials
library_books
Classes
toc
Namespaces
insert_drive_file
Files
launch
Gazebo Website
Index
List
Hierarchy
Members: All
Members: Functions
Members: Variables
Members: Typedefs
Members: Enumerations
Members: Enumerator
List
Members
Functions
Typedefs
Variables
Enumerations
Enumerator
src
gz-common
include
gz
common
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 GZ_COMMON_MATERIALDENSITY_HH_
18
#define GZ_COMMON_MATERIALDENSITY_HH_
19
20
#include <string>
21
#include <limits>
22
#include <map>
23
#include <tuple>
24
#include "gz/common/Export.hh"
25
26
namespace
gz
27
{
28
namespace
common
29
{
31
class
GZ_COMMON_VISIBLE
MaterialDensity
32
{
36
public
:
enum class
Type
37
{
41
BEGIN = 0,
42
44
STYROFOAM = BEGIN,
45
47
PINE,
48
50
WOOD,
51
53
OAK,
54
56
ICE,
57
59
WATER,
60
62
PLASTIC,
63
65
CONCRETE,
66
68
ALUMINUM,
69
71
STEEL_ALLOY,
72
74
STEEL_STAINLESS,
75
77
IRON,
78
80
BRASS,
81
83
COPPER,
84
86
TUNGSTEN,
87
91
END
92
};
93
96
public
:
static
const
std::map<Type, double>
&
Materials
();
97
102
public
:
static
double
Density
(
const
std::string
&_material);
103
107
public
:
static
double
Density
(
const
Type
_material);
108
117
public
:
static
std::tuple<Type, double>
Nearest
(
118
const
double
_value,
119
const
double
_epsilon =
std::numeric_limits<double>::max
());
120
127
public
:
static
Type
NearestMaterial
(
const
double
_value,
128
const
double
_epsilon =
std::numeric_limits<double>::max
());
129
130
#ifdef _WIN32
131
// Disable warning C4251
132
#pragma warning(push)
133
#pragma warning(disable: 4251)
134
#endif
136
private
:
static
std::map<Type, double>
materials;
137
#ifdef _WIN32
138
#pragma warning(pop)
139
#endif
140
};
141
}
142
}
143
#endif