8 MeshData makeAxes(
double length,
double radius,
size_t segments) {
10 mesh += makeCylinder(segments)
12 .scale(radius, radius, length * 0.5)
13 .translate(0, 0, length * 0.5)
14 .rotate(M_PI * 0.5, Eigen::Vector3f::UnitY());
15 mesh += makeCylinder(segments)
17 .scale(radius, radius, length * 0.5)
18 .translate(0, 0, length * 0.5)
19 .rotate(M_PI * -0.5, Eigen::Vector3f::UnitX());
20 mesh += makeCylinder(segments)
22 .scale(radius, radius, length * 0.5)
23 .translate(0, 0, length * 0.5);
28 if (_watcher.changed(length(), radius())) {
30 std::make_shared<Mesh>(makeAxes(length(), radius(), 32)), material());
31 _mesh_renderer->pose(Eigen::Isometry3d::Identity());
33 FrameDisplayBase::renderSync(context);