From c0315f313716c69e1fb98395c796b2fbb7d8bb7d Mon Sep 17 00:00:00 2001 From: "C. Andy Martin" Date: Wed, 4 Dec 2019 02:10:36 -1000 Subject: [PATCH] ogre helpers point_cloud: add size into bounds Add the size of the point visual into the bounding box. For small or zero sized points this makes little difference, but for large points (such as visualizing an octomap with large compressed regions), it is important to add the bounds to keep the points visible at the very edges of the cloud. --- src/rviz/ogre_helpers/point_cloud.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/rviz/ogre_helpers/point_cloud.cpp b/src/rviz/ogre_helpers/point_cloud.cpp index 832aa47c13..1e1927de5b 100644 --- a/src/rviz/ogre_helpers/point_cloud.cpp +++ b/src/rviz/ogre_helpers/point_cloud.cpp @@ -480,6 +480,7 @@ void PointCloud::addPoints(Point* points, uint32_t num_points) Ogre::AxisAlignedBox aabb; aabb.setNull(); + Ogre::Vector3 point_size_offset(width_/2.0, height_/2.0, depth_/2.0); uint32_t current_vertex_count = 0; bounding_radius_ = 0.0f; uint32_t vertex_size = 0; @@ -539,7 +540,8 @@ void PointCloud::addPoints(Point* points, uint32_t num_points) root->convertColourValue(p.color, &color); } - aabb.merge(p.position); + aabb.merge(p.position + point_size_offset); + aabb.merge(p.position - point_size_offset); float x = p.position.x; float y = p.position.y;