diff --git a/src/plugins/marker_manager/MarkerManager.cc b/src/plugins/marker_manager/MarkerManager.cc index 4a605eaf5..004679cfa 100644 --- a/src/plugins/marker_manager/MarkerManager.cc +++ b/src/plugins/marker_manager/MarkerManager.cc @@ -611,6 +611,8 @@ MarkerManager::Implementation::MsgToType(const gz::msgs::Marker &_msg) return gz::rendering::MarkerType::MT_BOX; case gz::msgs::Marker::CAPSULE: return gz::rendering::MarkerType::MT_CAPSULE; + case gz::msgs::Marker::CONE: + return gz::rendering::MarkerType::MT_CONE; case gz::msgs::Marker::CYLINDER: return gz::rendering::MarkerType::MT_CYLINDER; case gz::msgs::Marker::LINE_STRIP: diff --git a/src/plugins/transport_scene_manager/TransportSceneManager.cc b/src/plugins/transport_scene_manager/TransportSceneManager.cc index 267baa6cf..a2a342ba0 100644 --- a/src/plugins/transport_scene_manager/TransportSceneManager.cc +++ b/src/plugins/transport_scene_manager/TransportSceneManager.cc @@ -689,6 +689,13 @@ rendering::GeometryPtr TransportSceneManager::Implementation::LoadGeometry( if (_msg.box().has_size()) scale = msgs::Convert(_msg.box().size()); } + else if (_msg.has_cone()) + { + geom = this->scene->CreateCone(); + scale.X() = _msg.cone().radius() * 2; + scale.Y() = scale.X(); + scale.Z() = _msg.cone().length(); + } else if (_msg.has_cylinder()) { geom = this->scene->CreateCylinder();