include
pinocchio
multibody
visitor
fusion.hpp
Go to the documentation of this file.
1
//
2
// Copyright (c) 2015-2023 CNRS INRIA
3
//
4
5
#ifndef __pinocchio_multibody_visitor_fusion_hpp__
6
#define __pinocchio_multibody_visitor_fusion_hpp__
7
8
#define BOOST_FUSION_INVOKE_MAX_ARITY 12
9
10
#include <boost/variant/static_visitor.hpp>
11
#include <boost/fusion/include/invoke.hpp>
12
#include <boost/fusion/container/generation/make_vector.hpp>
13
14
namespace
pinocchio
15
{
16
namespace
fusion
17
{
18
19
namespace
bf
=
boost::fusion
;
20
typedef
boost::blank
NoArg
;
21
22
}
// namespace fusion
23
}
// namespace pinocchio
24
25
namespace
boost
26
{
27
namespace
fusion
28
{
29
31
template
<
typename
T,
typename
V>
32
typename
result_of::push_front<V const, T>::type
append
(
T
const
&
t
, V
const
&
v
)
33
{
34
return
push_front(
v
,
t
);
35
}
36
38
template
<
typename
T1,
typename
T2,
typename
V>
39
typename
result_of::push_front<typename result_of::push_front<V const, T2>::type
const
, T1>::
40
type
41
append
(T1
const
& t1, T2
const
& t2, V
const
&
v
)
42
{
43
return
push_front(push_front(
v
,
t2
), t1);
44
}
45
47
template
<
typename
T1,
typename
T2,
typename
T3,
typename
V>
48
typename
result_of::push_front<
49
typename
result_of::push_front<typename result_of::push_front<V const, T3>::type
const
, T2>::
50
type
const
,
51
T1>
::type
52
append
(T1
const
& t1, T2
const
& t2, T3
const
& t3, V
const
&
v
)
53
{
54
return
push_front(push_front(push_front(
v
, t3),
t2
), t1);
55
}
56
58
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4,
typename
V>
59
typename
result_of::push_front<
60
typename
result_of::push_front<
61
typename
result_of::
62
push_front<typename result_of::push_front<V const, T4>::type
const
, T3>
::type
const
,
63
T2>
::type
const
,
64
T1>
::type
65
append
(T1
const
& t1, T2
const
& t2, T3
const
& t3, T4
const
& t4, V
const
&
v
)
66
{
67
return
push_front(push_front(push_front(push_front(
v
, t4), t3),
t2
), t1);
68
}
69
71
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4,
typename
T5,
typename
V>
72
typename
result_of::push_front<
73
typename
result_of::push_front<
74
typename
result_of::push_front<
75
typename
result_of::
76
push_front<typename result_of::push_front<V const, T5>::type
const
, T4>
::type
const
,
77
T3>
::type
const
,
78
T2>
::type
const
,
79
T1>
::type
80
append
(T1
const
& t1, T2
const
& t2, T3
const
& t3, T4
const
& t4, T5
const
& t5, V
const
&
v
)
81
{
82
return
push_front(push_front(push_front(push_front(push_front(
v
, t5), t4), t3),
t2
), t1);
83
}
84
85
}
// namespace fusion
86
}
// namespace boost
87
88
#endif // ifndef __pinocchio_multibody_visitor_fusion_hpp__
simulation-contact-dynamics.T
int T
Definition:
simulation-contact-dynamics.py:89
common_symbols.type
type
Definition:
common_symbols.py:35
boost
t2
dictionary t2
cartpole.v
v
Definition:
cartpole.py:153
boost::fusion
Definition:
fusion.hpp:27
boost::fusion::append
result_of::push_front< V const, T >::type append(T const &t, V const &v)
Append the element T at the front of boost fusion vector V.
Definition:
fusion.hpp:32
pinocchio::fusion::NoArg
boost::blank NoArg
Definition:
fusion.hpp:20
t
Transform3f t
pinocchio
Main pinocchio namespace.
Definition:
timings.cpp:27
pinocchio
Author(s):
autogenerated on Thu Dec 19 2024 03:41:29