8#include <ArmarXGui/interface/RemoteGuiInterface.h>
12 Vector3f
toIceF(Eigen::Vector3f v);
14 Vector3i
toIceI(Eigen::Vector3i v);
16 Eigen::Vector3f
fromIce(Vector3f v);
18 Eigen::Vector3i
fromIce(Vector3i v);
28 ValueVariant
makeValue(std::string value);
30 ValueVariant
makeValue(Eigen::Vector3f
const& value);
32 ValueVariant
makeValue(Eigen::Matrix4f
const& value);
34 template <ValueVariantType Type_>
37 using Type = std::nullptr_t;
67 using Type = Eigen::Vector3f;
73 using Type = Eigen::Matrix4f;
92 if (value.type != VALUE_VARIANT_BOOL)
94 throw LocalException()
96 <<
"', name = '" << name <<
"'";
106 if (value.type != VALUE_VARIANT_INT)
108 throw LocalException()
110 <<
"', name = '" << name <<
"'";
120 if (value.type != VALUE_VARIANT_FLOAT)
122 throw LocalException()
124 <<
"', name = '" << name <<
"'";
134 if (value.type != VALUE_VARIANT_STRING)
136 throw LocalException()
138 <<
"', name = '" << name <<
"'";
144 inline Eigen::Vector3f
148 if (value.type != VALUE_VARIANT_VECTOR3)
150 throw LocalException()
152 <<
"', name = '" << name <<
"'";
154 if (value.v.size() != 3)
156 throw LocalException()
157 <<
"Expected type 'vector3' (size = 3) but got sequence with size '"
158 << value.v.size() <<
"', name = '" << name <<
"'";
160 return Eigen::Vector3f(value.v[0], value.v[1], value.v[2]);
164 inline Eigen::Matrix4f
168 if (value.type != VALUE_VARIANT_MATRIX4)
170 throw LocalException()
172 <<
"', name = '" << name <<
"'";
174 if (value.v.size() != 16)
176 throw LocalException()
177 <<
"Expected type 'matrix4' (size = 16) but got sequence with size '"
178 << value.v.size() <<
"', name = '" << name <<
"'";
180 Eigen::Matrix4f result;
181 result.row(0) = Eigen::Vector4f(value.v[0], value.v[1], value.v[2], value.v[3]);
182 result.row(1) = Eigen::Vector4f(value.v[4], value.v[5], value.v[6], value.v[7]);
183 result.row(2) = Eigen::Vector4f(value.v[8], value.v[9], value.v[10], value.v[11]);
184 result.row(3) = Eigen::Vector4f(value.v[12], value.v[13], value.v[14], value.v[15]);
188 template <
typename T>
195 ValueVariant
const& variantValue = values.at(name);
202 ARMARX_ERROR <<
"RemoteGui::getValue: name.size()" << name.size();
220 std::string
const& name);
222 bool operator==(ValueVariant
const& left, ValueVariant
const& right);
224 bool operator!=(ValueVariant
const& left, ValueVariant
const& right);
#define ARMARX_ERROR
The logging level for unexpected behaviour, that must be fixed.
T getSingleValue(ValueVariant const &value, const std::string &name="")
Eigen::Vector3f fromIce(Vector3f v)
bool getSingleValue< bool >(ValueVariant const &value, const std::string &name)
bool operator==(const ValueVariant &left, const ValueVariant &right)
float getSingleValue< float >(ValueVariant const &value, const std::string &name)
std::nullptr_t getSingleValue< std::nullptr_t >(RemoteGui::ValueVariant const &value, const std::string &name)
T getAndReturnValue(ValueMap const &values, std::string const &name)
Vector3f toIceF(Eigen::Vector3f v)
Eigen::Matrix4f getSingleValue< Eigen::Matrix4f >(ValueVariant const &value, const std::string &name)
int getSingleValue< int >(ValueVariant const &value, const std::string &name)
ValueVariant makeValue(bool value)
std::map< std::string, ValueVariant > ValueMap
std::enable_if_t< meta::cfg::gui_definition_enabled_v< T >, void > getValueFromMap(T &cfg, RemoteGui::ValueMap const &values, std::string const &name)
bool buttonClicked(RemoteGui::ValueMap const &newValues, RemoteGui::ValueMap const &oldValues, std::string const &name)
Eigen::Vector3f getSingleValue< Eigen::Vector3f >(ValueVariant const &value, const std::string &name)
bool operator!=(const ValueVariant &left, const ValueVariant &right)
std::string getSingleValue< std::string >(ValueVariant const &value, const std::string &name)
const char * getVariantTypeName(ValueVariantType type)
Vector3i toIceI(Eigen::Vector3i v)
std::string GetHandledExceptionString()
std::string GetTypeString(const std::type_info &tinf, bool withoutNamespaceSpecifier=false)