Class
List
Hierarchy
Modules
Common
Events
Math
Messages
Physics
Rendering
Sensors
Transport
Links
Gazebo Website
Wiki
Tutorials
Download
Report Documentation Issues
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
gazebo
common
SphericalCoordinates.hh
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2012-2014 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
18
#ifndef _SPHERICALCOORDINATES_HH_
19
#define _SPHERICALCOORDINATES_HH_
20
21
#include <string>
22
23
#include "
gazebo/math/Angle.hh
"
24
#include "
gazebo/math/Vector3.hh
"
25
26
namespace
gazebo
27
{
28
namespace
common
29
{
32
35
class
SphericalCoordinates
36
{
39
public
:
enum
SurfaceType
40
{
43
EARTH_WGS84
= 1
44
};
45
47
public
:
SphericalCoordinates
();
48
51
public
:
SphericalCoordinates
(
const
SurfaceType
_type);
52
59
public
:
SphericalCoordinates
(
const
SurfaceType
_type,
60
const
math::Angle
&_latitude,
61
const
math::Angle
&_longitude,
62
double
_elevation,
63
const
math::Angle
&_heading);
64
66
public
:
~SphericalCoordinates
();
67
72
public
:
math::Vector3
SphericalFromLocal
(
const
math::Vector3
&_xyz)
73
const
;
74
79
public
:
math::Vector3
GlobalFromLocal
(
const
math::Vector3
&_xyz)
80
const
;
81
85
public
:
static
SurfaceType
Convert
(
const
std::string &_str);
86
89
public
:
SurfaceType
GetSurfaceType
()
const
;
90
93
public
:
math::Angle
GetLatitudeReference
()
const
;
94
97
public
:
math::Angle
GetLongitudeReference
()
const
;
98
101
public
:
double
GetElevationReference
()
const
;
102
107
public
:
math::Angle
GetHeadingOffset
()
const
;
108
111
public
:
void
SetSurfaceType
(
const
SurfaceType
&_type);
112
115
public
:
void
SetLatitudeReference
(
const
math::Angle
&_angle);
116
119
public
:
void
SetLongitudeReference
(
const
math::Angle
&_angle);
120
123
public
:
void
SetElevationReference
(
double
_elevation);
124
127
public
:
void
SetHeadingOffset
(
const
math::Angle
&_angle);
128
130
private
:
SurfaceType
surfaceType;
131
133
private
:
math::Angle
latitudeReference;
134
136
private
:
math::Angle
longitudeReference;
137
139
private
:
double
elevationReference;
140
143
private
:
math::Angle
headingOffset;
144
};
146
}
147
}
148
#endif