conversions.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <memory>
4
#include <optional>
5
#include <ostream>
6
7
#include <Eigen/Core>
8
#include <
ArmarXCore/util/CPPUtility/trace.h
>
9
10
namespace
armarx::core::eigen
11
{
12
// optional
13
template
<
class
EigenT,
int
rows,
int
cols>
14
std::optional<Eigen::Matrix<EigenT, rows, cols, Eigen::ColMajor>>&
15
assign
(std::optional<
Eigen::Matrix<EigenT, rows, cols, Eigen::ColMajor>
>& lh,
16
const
std::optional<
Eigen::Matrix<EigenT, rows, cols, Eigen::RowMajor>
>& rh)
17
{
18
ARMARX_TRACE
;
19
if
(rh.has_value())
20
{
21
lh.emplace(rh.value());
22
}
23
else
24
{
25
lh = std::nullopt;
26
}
27
return
lh;
28
}
29
30
template
<
class
EigenT,
int
rows,
int
cols>
31
std::optional<Eigen::Matrix<EigenT, rows, cols, Eigen::RowMajor>>&
32
assign
(std::optional<
Eigen::Matrix<EigenT, rows, cols, Eigen::RowMajor>
>& lh,
33
const
std::optional<
Eigen::Matrix<EigenT, rows, cols, Eigen::ColMajor>
>& rh)
34
{
35
ARMARX_TRACE
;
36
if
(rh.has_value())
37
{
38
lh.emplace(rh.value());
39
}
40
else
41
{
42
lh = std::nullopt;
43
}
44
return
lh;
45
}
46
47
// shared_ptr
48
template
<
class
EigenT,
int
rows,
int
cols>
49
std::shared_ptr<Eigen::Matrix<EigenT, rows, cols, Eigen::ColMajor>>&
50
assign
(std::shared_ptr<
Eigen::Matrix<EigenT, rows, cols, Eigen::ColMajor>
>& lh,
51
const
std::shared_ptr<
Eigen::Matrix<EigenT, rows, cols, Eigen::RowMajor>
>& rh)
52
{
53
ARMARX_TRACE
;
54
if
(rh)
55
{
56
lh = std::make_shared<Eigen::Matrix<EigenT, rows, cols, Eigen::ColMajor>>(*rh);
57
}
58
else
59
{
60
lh =
nullptr
;
61
}
62
return
lh;
63
}
64
65
template
<
class
EigenT,
int
rows,
int
cols>
66
std::shared_ptr<Eigen::Matrix<EigenT, rows, cols, Eigen::RowMajor>>&
67
assign
(std::shared_ptr<
Eigen::Matrix<EigenT, rows, cols, Eigen::RowMajor>
>& lh,
68
const
std::shared_ptr<
Eigen::Matrix<EigenT, rows, cols, Eigen::ColMajor>
>& rh)
69
{
70
ARMARX_TRACE
;
71
if
(rh)
72
{
73
lh = std::make_shared<Eigen::Matrix<EigenT, rows, cols, Eigen::RowMajor>>(*rh);
74
}
75
else
76
{
77
lh =
nullptr
;
78
}
79
return
lh;
80
}
81
}
// namespace armarx::core::eigen
82
83
namespace
armarx
84
{
85
using
armarx::core::eigen::assign
;
86
}
armarx::core::eigen
Definition:
conversions.cpp:3
trace.h
ARMARX_TRACE
#define ARMARX_TRACE
Definition:
trace.h:69
Eigen::Matrix
Definition:
EigenForwardDeclarations.h:27
armarx::core::eigen::assign
std::optional< Eigen::Matrix< EigenT, rows, cols, Eigen::ColMajor > > & assign(std::optional< Eigen::Matrix< EigenT, rows, cols, Eigen::ColMajor >> &lh, const std::optional< Eigen::Matrix< EigenT, rows, cols, Eigen::RowMajor >> &rh)
Definition:
conversions.h:15
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition:
ArmarXTimeserver.cpp:28
ArmarXCore
core
eigen
conversions.h
Generated on Sat Oct 12 2024 09:14:01 for armarx_documentation by
1.8.17