42 x_extent = y_extent = z_extent = 0.0;
46 if (shape_msg.dimensions.size() >=
48 x_extent = y_extent = z_extent = shape_msg.dimensions[shape_msgs::SolidPrimitive::SPHERE_RADIUS] * 2.0;
54 x_extent = shape_msg.dimensions[shape_msgs::SolidPrimitive::BOX_X];
55 y_extent = shape_msg.dimensions[shape_msgs::SolidPrimitive::BOX_Y];
56 z_extent = shape_msg.dimensions[shape_msgs::SolidPrimitive::BOX_Z];
61 if (shape_msg.dimensions.size() >=
64 x_extent = y_extent = shape_msg.dimensions[shape_msgs::SolidPrimitive::CYLINDER_RADIUS] * 2.0;
65 z_extent = shape_msg.dimensions[shape_msgs::SolidPrimitive::CYLINDER_HEIGHT];
70 if (shape_msg.dimensions.size() >=
73 x_extent = y_extent = shape_msg.dimensions[shape_msgs::SolidPrimitive::CONE_RADIUS] * 2.0;
74 z_extent = shape_msg.dimensions[shape_msgs::SolidPrimitive::CONE_HEIGHT];
82 x_extent = y_extent = z_extent = 0.0;
83 if (!shape_msg.vertices.empty())
85 double xmin = std::numeric_limits<double>::max(), ymin = std::numeric_limits<double>::max(),
86 zmin = std::numeric_limits<double>::max();
87 double xmax = -std::numeric_limits<double>::max(), ymax = -std::numeric_limits<double>::max(),
88 zmax = -std::numeric_limits<double>::max();
89 for (
const geometry_msgs::Point& vertex : shape_msg.vertices)
104 x_extent = xmax - xmin;
105 y_extent = ymax - ymin;
106 z_extent = zmax - zmin;
void getShapeExtents(const shape_msgs::SolidPrimitive &shape_msg, double &x_extent, double &y_extent, double &z_extent)
Get the dimensions of an axis-aligned bounding box for the shape described by shape_msg.
The number of dimensions of a particular shape.