1#include "clproto/decoders.h"
7std::vector<bool>
decoder(
const google::protobuf::RepeatedField<bool>& message) {
9 std::vector<bool> vec(message.begin(), message.end());
17Eigen::Vector3d
decoder(
const proto::Vector3d& message) {
18 return {message.x(), message.y(), message.z()};
21Eigen::Quaterniond
decoder(
const proto::Quaterniond& message) {
22 return {message.w(), message.vec().x(), message.vec().y(), message.vec().z()};
27 return Parameter<int>(message.state().name(), message.parameter_value().int_().value());
32 message.state().name(),
decoder(message.parameter_value().int_array().value()));
36 return Parameter<double>(message.state().name(), message.parameter_value().double_().value());
41 message.state().name(),
decoder(message.parameter_value().double_array().value()));
45 return Parameter<bool>(message.state().name(), message.parameter_value().bool_().value());
49 auto val =
decoder(message.parameter_value().bool_array().value());
59 message.state().name(),
decoder(message.parameter_value().string_array().value()));
63 std::vector<double> elements =
decoder(message.parameter_value().vector().value());
65 message.state().name(), Eigen::Map<Eigen::VectorXd>(
66 elements.data(),
static_cast<Eigen::Index
>(elements.size())));
70 std::vector<double> elements =
decoder(message.parameter_value().matrix().value());
72 message.state().name(), Eigen::Map<Eigen::MatrixXd>(
73 elements.data(), message.parameter_value().matrix().rows(), message.parameter_value().matrix().cols()));
Bindings to encode and decode state objects into serialised binary message.
std::vector< FieldT > decoder(const google::protobuf::RepeatedField< FieldT > &message)
Decoding helper method for a RepeatedField message into vector data.
Core state variables and objects.
StateType
The class types inheriting from State.