1#ifndef GLK_TYPE_CONVERSION_HPP
2#define GLK_TYPE_CONVERSION_HPP
10template <
typename Dst,
typename Src>
17template <
typename Dst_Scalar,
int Dst_Dim,
typename Src_Scalar,
int Src_Dim,
template <
class>
class Allocator>
21convert_vector(std::vector<Eigen::Matrix<Src_Scalar, Src_Dim, 1>,
Allocator<Eigen::Matrix<Src_Scalar, Src_Dim, 1>>>&& data) {
22 return std::move(data);
25template <
typename Dst_Scalar,
int Dst_Dim,
typename Src_Scalar,
int Src_Dim,
template <
class>
class Allocator>
29convert_vector(
const std::vector<Eigen::Matrix<Src_Scalar, Src_Dim, 1>,
Allocator<Eigen::Matrix<Src_Scalar, Src_Dim, 1>>>& data) {
33template <
typename Dst_Scalar,
int Dst_Dim,
typename Src_Scalar,
int Src_Dim,
template <
class>
class Allocator>
35 !std::is_same<Dst_Scalar, Src_Scalar>::value ||
Dst_Dim !=
Src_Dim,
37convert_vector(
const std::vector<Eigen::Matrix<Src_Scalar, Src_Dim, 1>,
Allocator<Eigen::Matrix<Src_Scalar, Src_Dim, 1>>>& data) {
39 std::transform(data.begin(), data.end(),
converted.begin(), [](
const Eigen::Matrix<Src_Scalar, Src_Dim, 1>&
x) {
40 return x.template cast<Dst_Scalar>().template head<Dst_Dim>();
45template <
typename Dst_Scalar,
int Dst_Rows,
int Dst_Cols,
typename Src_Scalar,
int Src_Rows,
int Src_Cols,
template <
class>
class Allocator = std::allocator>
47 std::is_same<Dst_Scalar, Src_Scalar>::value,
66 for (
int i = 0;
i < num_points;
i++) {
74template <
typename Dst_Scalar,
int Dst_Rows,
int Dst_Cols,
typename Src_Scalar,
int Src_Rows,
int Src_Cols,
template <
class>
class Allocator = std::allocator>
76 !std::is_same<Dst_Scalar, Src_Scalar>::value,
Definition async_buffer_copy.hpp:6
std::vector< Dst > convert_scalars(const Src *data, int num_data)
Definition type_conversion.hpp:11
std::enable_if_t< std::is_same< Dst_Scalar, Src_Scalar >::value, std::vector< Eigen::Matrix< Dst_Scalar, Dst_Rows, Dst_Cols >, Allocator< Eigen::Matrix< Dst_Scalar, Dst_Rows, Dst_Cols > > > > convert_to_vector(const Eigen::Matrix< Src_Scalar, Src_Rows, Src_Cols > *points, int num_points)
Definition type_conversion.hpp:49
std::enable_if_t< needs_aligned_allocator< T >::value, std::shared_ptr< T > > make_shared(Args &&... args)
Definition make_shared.hpp:20
std::enable_if_t< std::is_same< Dst_Scalar, Src_Scalar >::value &&Dst_Dim==Src_Dim, std::vector< Eigen::Matrix< Dst_Scalar, Dst_Dim, 1 >, Allocator< Eigen::Matrix< Dst_Scalar, Dst_Dim, 1 > > > > convert_vector(std::vector< Eigen::Matrix< Src_Scalar, Src_Dim, 1 >, Allocator< Eigen::Matrix< Src_Scalar, Src_Dim, 1 > > > &&data)
Definition type_conversion.hpp:21