37 auto result = msgs::SphericalCoordinatesType::LOCAL;
40 case math::SphericalCoordinates::CoordinateType::ECEF:
41 result = msgs::SphericalCoordinatesType::ECEF;
43 case math::SphericalCoordinates::CoordinateType::GLOBAL:
44 result = msgs::SphericalCoordinatesType::GLOBAL;
46 case math::SphericalCoordinates::CoordinateType::SPHERICAL:
47 result = msgs::SphericalCoordinatesType::SPHERICAL;
49 case math::SphericalCoordinates::CoordinateType::LOCAL:
50 result = msgs::SphericalCoordinatesType::LOCAL;
60 const msgs::SphericalCoordinatesType &_sc)
64 case msgs::SphericalCoordinatesType::ECEF:
65 return math::SphericalCoordinates::CoordinateType::ECEF;
66 case msgs::SphericalCoordinatesType::GLOBAL:
67 return math::SphericalCoordinates::CoordinateType::GLOBAL;
68 case msgs::SphericalCoordinatesType::SPHERICAL:
69 return math::SphericalCoordinates::CoordinateType::SPHERICAL;
70 case msgs::SphericalCoordinatesType::LOCAL:
71 return math::SphericalCoordinates::CoordinateType::LOCAL;
75 return math::SphericalCoordinates::CoordinateType::LOCAL;
79inline void Set(gz::msgs::SphericalCoordinates *_msg,
82 if (_data.
Surface() == math::SphericalCoordinates::EARTH_WGS84)
84 _msg->set_surface_model(msgs::SphericalCoordinates::EARTH_WGS84);
86 else if (_data.
Surface() == math::SphericalCoordinates::MOON_SCS)
88 _msg->set_surface_model(msgs::SphericalCoordinates::MOON_SCS);
91 math::SphericalCoordinates::CUSTOM_SURFACE)
93 _msg->set_surface_model(
94 msgs::SphericalCoordinates::CUSTOM_SURFACE);
100 std::cerr <<
"Unrecognized spherical surface type ["
102 <<
"]. Not populating message field." <<
std::endl;
111 const gz::msgs::SphericalCoordinates &_msg)
113 if (_msg.surface_model() == msgs::SphericalCoordinates::EARTH_WGS84)
115 _data->
SetSurface(math::SphericalCoordinates::EARTH_WGS84);
117 else if (_msg.surface_model() == msgs::SphericalCoordinates::MOON_SCS)
119 _data->
SetSurface(math::SphericalCoordinates::MOON_SCS);
121 else if (_msg.surface_model() == msgs::SphericalCoordinates::CUSTOM_SURFACE)
123 _data->
SetSurface(math::SphericalCoordinates::CUSTOM_SURFACE,
124 _msg.surface_axis_equatorial(),
125 _msg.surface_axis_polar());
129 std::cerr <<
"Unrecognized spherical surface type ["
130 << _msg.surface_model()
131 <<
"]. Not populating data field." <<
std::endl;
135 lat.SetDegree(_msg.latitude_deg());
139 lon.SetDegree(_msg.longitude_deg());
143 head.SetDegree(_msg.heading_deg());