| 430 | } |
| 431 | |
| 432 | bool Initializer::SelectFramePair( |
| 433 | const std::vector<std::shared_ptr<Feature>>& features, |
| 434 | std::shared_ptr<Frame>& frame1, |
| 435 | std::shared_ptr<Frame>& frame2 |
| 436 | ) const { |
| 437 | if (features.empty()) { |
| 438 | return false; |
| 439 | } |
| 440 | |
| 441 | // Use first and last observation frames from the first feature |
| 442 | // (all features should have similar observation windows) |
| 443 | const auto& observations = features[0]->GetObservations(); |
| 444 | |
| 445 | if (observations.size() < 2) { |
| 446 | return false; |
| 447 | } |
| 448 | |
| 449 | frame1 = observations.front().frame; |
| 450 | frame2 = observations.back().frame; |
| 451 | |
| 452 | return true; |
| 453 | } |
| 454 | |
| 455 | bool Initializer::ComputeEssentialMatrix( |
| 456 | const std::vector<Eigen::Vector3f>& bearings1, |
nothing calls this directly
no outgoing calls
no test coverage detected