27#include <RobotAPI/interface/aron.h>
37 convert_to_1d_vector(
const unsigned char*
data,
const int offset,
const int size)
41 int elements = size /
sizeof(
T);
43 std::vector<T> v(elements);
44 memcpy(v.data(),
data + offset, size);
53 static std::vector<std::vector<T>>
56 const auto& dims =
nav.getShape();
58 if (dims.size() == 0 || dim0size == 0)
65 dim0size = dims.at(0);
68 const int fullDataByteSize =
nav.getDataAsVector().size();
71 const int fullDataSize = fullDataByteSize /
sizeof(
T);
74 const int dim1size = fullDataSize / dim0size;
76 const int oneRowByteSize = dim1size *
sizeof(
T);
77 std::vector<std::vector<T>> v(dims.at(0));
78 for (
int i = 0; i < dim0size; i++)
80 v[i] = convert_to_1d_vector<T>(
nav.getData(), i * oneRowByteSize, oneRowByteSize);
87 static std::vector<std::vector<T>>
99 const auto& dims =
nav.getShape();
101 if (dims.size() == 0)
106 const int fullDataByteSize =
nav.getDataAsVector().size();
109 const int dim0size = fullDataByteSize /
sizeof(
T);
111 const int oneRowByteSize = dim0size *
sizeof(
T);
112 std::vector<T> v = convert_to_1d_vector<T>(
nav.getData(), 0, oneRowByteSize);
116 template <
typename T>
117 static std::vector<T>
126 template <
typename T>
127 static std::vector<T>
134 template <
typename T>
140 ndArr->setShape({
static_cast<int>(
data.size()),
sizeof(
T)});
141 ndArr->setData(
sizeof(
T) *
data.size(),
142 reinterpret_cast<const unsigned char*
>(
data.data()));
148 template <
typename T>
static data::NDArrayPtr ConvertFromVector(const std::vector< T > &data)
static std::vector< std::vector< T > > ConvertTo2DVector(const data::NDArrayPtr &nav)
AronVectorConverter()=delete
static std::vector< T > ConvertTo1DVector(const data::NDArray &nav)
static std::vector< std::vector< T > > ConvertTo2DVector(const data::NDArray &nav, int dim0size=-1)
static std::vector< T > ConvertToVector(const data::NDArrayPtr &nav)
static std::vector< T > ConvertTo1DVector(const data::NDArrayPtr &nav)
static data::NDArrayPtr ConvertFrom1DVector(const std::vector< T > &data)
#define ARMARX_CHECK(expression)
Shortcut for ARMARX_CHECK_EXPRESSION.
#define ARMARX_CHECK_NOT_NULL(ptr)
This macro evaluates whether ptr is not null and if it turns out to be false it will throw an Express...
::armarx::aron::data::converter::AronVectorConverter AronVectorConverter
A convenience header to include all aron files (full include, not forward declared)
std::shared_ptr< NDArray > NDArrayPtr