| 423 | |
| 424 | template <typename T, typename U> |
| 425 | std::vector<keyframe *> graph_node::extract_intersection(const T &keyfrms_1, const U &keyfrms_2) |
| 426 | { |
| 427 | std::vector<keyframe *> intersection; |
| 428 | intersection.reserve(std::min(keyfrms_1.size(), keyfrms_2.size())); |
| 429 | for (const auto keyfrm_1 : keyfrms_1) |
| 430 | { |
| 431 | for (const auto keyfrm_2 : keyfrms_2) |
| 432 | { |
| 433 | if (*keyfrm_1 == *keyfrm_2) |
| 434 | { |
| 435 | intersection.push_back(keyfrm_1); |
| 436 | } |
| 437 | } |
| 438 | } |
| 439 | return intersection; |
| 440 | } |
| 441 | |
| 442 | } // namespace data |
| 443 | } // namespace PLPSLAM |