Skip to content
Snippets Groups Projects
Commit cb0f81ea authored by Simon Ottenhaus's avatar Simon Ottenhaus
Browse files

added convenience functions

parent 64904d2a
No related branches found
No related tags found
No related merge requests found
......@@ -31,21 +31,31 @@ SimpleJsonLoggerEntry::SimpleJsonLoggerEntry()
{
}
void SimpleJsonLoggerEntry::AddAsArr(const std::string& key, Eigen::Vector3f vec)
void SimpleJsonLoggerEntry::AddAsArr(const std::string& key, const Eigen::Vector3f &vec)
{
obj->add(key, ToArr((Eigen::VectorXf)vec));
}
void SimpleJsonLoggerEntry::AddAsArr(const std::string& key, const Eigen::VectorXf &vec)
{
obj->add(key, ToArr(vec));
}
void SimpleJsonLoggerEntry::AddAsObj(const std::string& key, Eigen::Vector3f vec)
void SimpleJsonLoggerEntry::AddAsObj(const std::string& key, const Eigen::Vector3f &vec)
{
obj->add(key, ToObj(vec));
}
void SimpleJsonLoggerEntry::AddAsArr(const std::string& key, Eigen::Matrix4f mat)
void SimpleJsonLoggerEntry::AddAsArr(const std::string& key, const Eigen::Matrix4f &mat)
{
obj->add(key, ToArr(mat));
}
void SimpleJsonLoggerEntry::AddMatrix(const std::string& key, const Eigen::MatrixXf& mat)
{
obj->add(key, MatrixToArr(mat));
}
void SimpleJsonLoggerEntry::Add(const std::string& key, const std::string& value)
{
obj->add(key, JsonValue::Create(value));
......@@ -56,13 +66,29 @@ void SimpleJsonLoggerEntry::Add(const std::string& key, float value)
obj->add(key, JsonValue::Create(value));
}
void SimpleJsonLoggerEntry::Add(const std::string& key, const std::vector<float>& value)
{
obj->add(key, ToArr(value));
}
JsonArrayPtr SimpleJsonLoggerEntry::ToArr(Eigen::Vector3f vec)
JsonArrayPtr SimpleJsonLoggerEntry::ToArr(const Eigen::VectorXf& vec)
{
JsonArrayPtr arr(new JsonArray);
arr->add(JsonValue::Create(vec(0)));
arr->add(JsonValue::Create(vec(1)));
arr->add(JsonValue::Create(vec(2)));
for(int i = 0; i < vec.rows(); i++)
{
arr->add(JsonValue::Create(vec(i)));
}
return arr;
}
JsonArrayPtr SimpleJsonLoggerEntry::ToArr(const std::vector<float>& vec)
{
JsonArrayPtr arr(new JsonArray);
for(float v : vec)
{
arr->add(JsonValue::Create(v));
}
return arr;
}
......@@ -111,6 +137,21 @@ JsonArrayPtr SimpleJsonLoggerEntry::ToArr(Eigen::Matrix4f mat)
return arr;
}
JsonArrayPtr SimpleJsonLoggerEntry::MatrixToArr(Eigen::MatrixXf mat)
{
JsonArrayPtr arr(new JsonArray);
for(int i = 0; i < mat.rows(); i++)
{
JsonArrayPtr row(new JsonArray);
for(int j = 0; j < mat.cols(); j++)
{
row->add(JsonValue::Create(mat(i, j)));
}
arr->add(row);
}
return arr;
}
void SimpleJsonLoggerEntry::AddTimestamp()
{
IceUtil::Time now = IceUtil::Time::now();
......
......@@ -38,16 +38,21 @@ namespace armarx
{
public:
SimpleJsonLoggerEntry();
void AddAsArr(const std::string& key, Eigen::Vector3f vec);
void AddAsObj(const std::string& key, Eigen::Vector3f vec);
void AddAsArr(const std::string& key, Eigen::Matrix4f mat);
void AddAsArr(const std::string& key, const Eigen::Vector3f &vec);
void AddAsArr(const std::string& key, const Eigen::VectorXf &vec);
void AddAsObj(const std::string& key, const Eigen::Vector3f &vec);
void AddAsArr(const std::string& key, const Eigen::Matrix4f &mat);
void AddMatrix(const std::string& key, const Eigen::MatrixXf &mat);
void Add(const std::string& key, const std::string& value);
void Add(const std::string& key, float value);
void Add(const std::string& key, const std::vector<float>& value);
static JsonArrayPtr ToArr(Eigen::Vector3f vec);
static JsonArrayPtr ToArr(const Eigen::VectorXf &vec);
static JsonArrayPtr ToArr(const std::vector<float>& vec);
static JsonObjectPtr ToObj(Eigen::Vector3f vec);
static JsonArrayPtr ToArr(Eigen::Matrix4f mat);
static JsonArrayPtr MatrixToArr(Eigen::MatrixXf mat);
void AddTimestamp();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment