void SelectionHandler::updateTrackedBoxes() { M_HandleToBox::iterator it = boxes_.begin(); M_HandleToBox::iterator end = boxes_.end(); for (; it != end; ++it) { V_AABB aabbs; Picked p(it->first.first); p.extra_handles.insert(it->first.second); getAABBs(Picked(it->first.first), aabbs); if (!aabbs.empty()) { Ogre::AxisAlignedBox combined; V_AABB::iterator aabb_it = aabbs.begin(); V_AABB::iterator aabb_end = aabbs.end(); for (; aabb_it != aabb_end; ++aabb_it) { combined.merge(*aabb_it); } createBox(std::make_pair(p.handle, it->first.second), combined, "RVIZ/Cyan"); } } }
void SelectionHandler::onSelect(const Picked& obj) { ROS_DEBUG("Selected 0x%08x", obj.handle); V_AABB aabbs; getAABBs(obj, aabbs); if (!aabbs.empty()) { Ogre::AxisAlignedBox combined; V_AABB::iterator it = aabbs.begin(); V_AABB::iterator end = aabbs.end(); for (; it != end; ++it) { combined.merge(*it); } createBox(std::make_pair(obj.handle, 0ULL), combined, "RVIZ/Cyan"); } }