29 #include <SimoxUtility/json.h>
30 #include <SimoxUtility/meta/eigen/is_eigen_array.h>
31 #include <SimoxUtility/meta/eigen/is_eigen_matrix.h>
57 using traits = simox::meta::is_eigen_matrix<T>;
58 using eigen_t =
typename traits::eigen_t;
59 using scalar_t =
typename traits::scalar_t;
63 if constexpr (traits::cols == 1 or traits::rows == 1)
66 std::vector<scalar_t> coefs;
67 for (
unsigned int r = 0; r < traits::rows; ++r)
69 for (
unsigned int c = 0;
c < traits::cols; ++
c)
71 coefs.push_back(m(r,
c));
95 using traits = simox::meta::is_eigen_array<T>;
96 using eigen_t =
typename traits::eigen_t;
98 const static auto parser = [&](
const std::string&
input) -> eigen_t
99 {
return nlohmann::json::parse(
input); };
111 using traits = simox::meta::is_eigen_matrix<T>;
112 using eigen_t =
typename traits::eigen_t;
113 using scalar_t =
typename traits::scalar_t;
115 const static auto parser = [&](
const std::string&
input) -> eigen_t
118 if constexpr (!(traits::cols == 1 or traits::rows == 1))
120 return nlohmann::json::parse(
input);
124 eigen_t m = eigen_t::Zero();
125 const std::vector<scalar_t> coefs = nlohmann::json::parse(
input);
127 if (
static_cast<long int>(coefs.size()) != m.size())
131 <<
"Property must be a vector with " << m.size() <<
" elements.";
136 for (
unsigned int i = 0; i < coefs.size(); ++i)
138 m(r,
c) = coefs.at(i);
140 if constexpr (traits::cols == 1)