TypedDataDisplayVisitor.h
Go to the documentation of this file.
1#pragma once
2
3#include <sstream>
4#include <string>
5
6#include <Eigen/Core>
7
9
10#include "StringStreamMixin.h"
11
12namespace armarx::aron
13{
14
18 {
19 public:
20 static std::string getValue(const type::VariantPtr& type, const data::VariantPtr& data);
21
22
23 public:
25
26 void visitDict(const data::VariantPtr& data, const type::VariantPtr& type) override;
27 void visitObject(const data::VariantPtr& data, const type::VariantPtr& type) override;
28
29 void visitList(const data::VariantPtr& data, const type::VariantPtr& type) override;
30 void visitTuple(const data::VariantPtr& data, const type::VariantPtr& type) override;
31 // What about Pair? currently defaulted
32
33 void visitBool(const data::VariantPtr& data, const type::VariantPtr& type) override;
34 void visitDouble(const data::VariantPtr& data, const type::VariantPtr& type) override;
35 void visitFloat(const data::VariantPtr& data, const type::VariantPtr& type) override;
36 void visitInt(const data::VariantPtr& data, const type::VariantPtr& type) override;
37 void visitLong(const data::VariantPtr& data, const type::VariantPtr& type) override;
38 void visitString(const data::VariantPtr& data, const type::VariantPtr& type) override;
39
40 void visitIntEnum(const data::VariantPtr& data, const type::VariantPtr& type) override;
41
42
43 void visitMatrix(const data::VariantPtr& data, const type::VariantPtr& type) override;
44 void visitQuaternion(const data::VariantPtr& data, const type::VariantPtr& type) override;
45 void visitImage(const data::VariantPtr& data, const type::VariantPtr& type) override;
46 void visitPointCloud(const data::VariantPtr& data, const type::VariantPtr& type) override;
47 // What about NDArray? currently defaulted
48
49
50 private:
51 template <typename ScalarT>
52 void processMatrix(const type::Matrix&, const data::NDArray& data);
53 void processQuaternion(const data::NDArray& data);
54
55 void processPose(const type::Matrix&, const data::NDArray& data);
56 void processPosition(const type::Matrix&, const data::NDArray& data);
57 void processOrientation(const type::Quaternion&, const data::NDArray& data);
58 };
59
60} // namespace armarx::aron
void visitDouble(const data::VariantPtr &data, const type::VariantPtr &type) override
void visitLong(const data::VariantPtr &data, const type::VariantPtr &type) override
void visitList(const data::VariantPtr &data, const type::VariantPtr &type) override
void visitDict(const data::VariantPtr &data, const type::VariantPtr &type) override
void visitIntEnum(const data::VariantPtr &data, const type::VariantPtr &type) override
void visitTuple(const data::VariantPtr &data, const type::VariantPtr &type) override
void visitObject(const data::VariantPtr &data, const type::VariantPtr &type) override
void visitInt(const data::VariantPtr &data, const type::VariantPtr &type) override
void visitPointCloud(const data::VariantPtr &data, const type::VariantPtr &type) override
void visitQuaternion(const data::VariantPtr &data, const type::VariantPtr &type) override
void visitString(const data::VariantPtr &data, const type::VariantPtr &type) override
void visitMatrix(const data::VariantPtr &data, const type::VariantPtr &type) override
void visitFloat(const data::VariantPtr &data, const type::VariantPtr &type) override
static std::string getValue(const type::VariantPtr &type, const data::VariantPtr &data)
void visitImage(const data::VariantPtr &data, const type::VariantPtr &type) override
void visitBool(const data::VariantPtr &data, const type::VariantPtr &type) override
The Matrix class.
Definition Matrix.h:40
The Qaternion class.
Definition Quaternion.h:40
A convenience header to include all aron files (full include, not forward declared)
std::shared_ptr< Variant > VariantPtr
A convenience header to include all aron files (full include, not forward declared)
std::shared_ptr< Variant > VariantPtr