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);