Skip to content
Snippets Groups Projects
Commit 820c1388 authored by Raphael Grimm's avatar Raphael Grimm
Browse files

Improve deg_to_rad and rad_to_deg (they will complain if a non floating type is deduced as return)

parent cb36f793
No related branches found
No related tags found
No related merge requests found
......@@ -7,14 +7,16 @@
namespace simox::math
{
template<class FloatT>
FloatT deg_to_rad(FloatT rad)
std::enable_if_t<std::is_floating_point_v<FloatT>, FloatT>
deg_to_rad(FloatT deg)
{
return rad / 180.f * boost::math::constants::pi<FloatT>();
return deg / 180.f * boost::math::constants::pi<FloatT>();
}
template<class FloatT>
Eigen::Matrix<FloatT, 3, 1> deg_to_rad(Eigen::Ref<const Eigen::Matrix<FloatT, 3, 1>> rad)
std::enable_if_t<std::is_floating_point_v<FloatT>, Eigen::Matrix<FloatT, 3, 1>>
deg_to_rad(Eigen::Ref<const Eigen::Matrix<FloatT, 3, 1>> deg)
{
return {deg_to_rad(rad(0)), deg_to_rad(rad(1)), deg_to_rad(rad(2))};
return {deg_to_rad(deg(0)), deg_to_rad(deg(1)), deg_to_rad(deg(2))};
}
}
......@@ -5,13 +5,15 @@
namespace simox::math
{
template<class FloatT>
FloatT rad_to_deg(FloatT rad)
std::enable_if_t<std::is_floating_point_v<FloatT>, FloatT>
rad_to_deg(FloatT rad)
{
return rad * 180.f / boost::math::constants::pi<FloatT>();
}
template<class FloatT>
Eigen::Matrix<FloatT, 3, 1> rad_to_deg(Eigen::Ref<const Eigen::Matrix<FloatT, 3, 1>> rad)
std::enable_if_t<std::is_floating_point_v<FloatT>, Eigen::Matrix<FloatT, 3, 1> >
rad_to_deg(Eigen::Ref<const Eigen::Matrix<FloatT, 3, 1>> rad)
{
return {rad_to_deg(rad(0)), rad_to_deg(rad(1)), rad_to_deg(rad(2))};
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment