26 template<
typename GetStart,
typename GetEnd>
32 :
Element(
name), get_start_fn_(get_start_fn), get_end_fn_(get_end_fn), config_(config)
35 "Arrow element start callback must return an Eigen::Vector3d");
37 "Arrow element end callback must return an Eigen::Vector3d");
48 builder.
write(get_start_fn_());
49 builder.
write(get_end_fn_());
51 config_.
write(builder);
55 GetStart get_start_fn_;
60 template<
typename GetStart,
typename SetStart,
typename GetEnd,
typename SetEnd>
65 GetStart get_start_fn,
66 SetStart set_start_fn,
69 :
ArrowROImpl<GetStart, GetEnd>(
name, config, get_start_fn, get_end_fn), set_start_fn_(set_start_fn),
70 set_end_fn_(set_end_fn)
81 const Eigen::Vector6d & arrow = data;
82 set_start_fn_(arrow.head<3>());
83 set_end_fn_(arrow.tail<3>());
88 SetStart set_start_fn_;
95 template<
typename GetStart,
typename GetEnd>
96 auto Arrow(
const std::string & name, GetStart get_start_fn, GetEnd get_end_fn)
102 template<
typename GetStart,
typename GetEnd>
103 auto Arrow(
const std::string & name,
const ArrowConfig & config, GetStart get_start_fn, GetEnd get_end_fn)
108 template<
typename GetStart,
typename SetStart,
typename GetEnd,
typename SetEnd>
109 auto Arrow(
const std::string & name, GetStart get_start_fn, SetStart set_start_fn, GetEnd get_end_fn, SetEnd set_end_fn)
114 template<
typename GetStart,
typename SetStart,
typename GetEnd,
typename SetEnd>
115 auto Arrow(
const std::string & name,
117 GetStart get_start_fn,
118 SetStart set_start_fn,
122 return details::ArrowImpl(name, config, get_start_fn, set_start_fn, get_end_fn, set_end_fn);
Definition: Observer.h:16
auto Arrow(const std::string &name, GetStart get_start_fn, GetEnd get_end_fn)
Definition: Arrow.h:96
Simplify access to values hold within a JSON file.
Definition: Configuration.h:166
Definition: MessagePackBuilder.h:87
static constexpr size_t write_size()
Definition: types.h:246
void write(mc_rtc::MessagePackBuilder &out) const
Definition: types.h:248
Definition: elements.h:59
const std::string & name() const
Definition: elements.h:61
void write(mc_rtc::MessagePackBuilder &)
Definition: elements.h:83
static constexpr size_t write_size()
Definition: elements.h:76
ArrowImpl()
Definition: Arrow.h:75
ArrowImpl(const std::string &name, const ArrowConfig &config, GetStart get_start_fn, SetStart set_start_fn, GetEnd get_end_fn, SetEnd set_end_fn)
Definition: Arrow.h:63
bool handleRequest(const mc_rtc::Configuration &data)
Definition: Arrow.h:79
void write(mc_rtc::MessagePackBuilder &builder)
Definition: Arrow.h:77
static constexpr auto type
Definition: Arrow.h:29
constexpr static size_t write_size()
Definition: Arrow.h:43
ArrowROImpl(const std::string &name, const ArrowConfig &config, GetStart get_start_fn, GetEnd get_end_fn)
Definition: Arrow.h:31
ArrowROImpl()
Definition: Arrow.h:41
void write(mc_rtc::MessagePackBuilder &builder, bool ro=true)
Definition: Arrow.h:45