| 859 | } |
| 860 | |
| 861 | FeatureMatchesBlob ReadMatchesBlob(image_t image_id1, |
| 862 | image_t image_id2) const override { |
| 863 | Sqlite3StmtContext context(sql_stmt_read_matches_); |
| 864 | |
| 865 | const image_pair_t pair_id = ImagePairToPairId(image_id1, image_id2); |
| 866 | SQLITE3_CALL(sqlite3_bind_int64(sql_stmt_read_matches_, 1, pair_id)); |
| 867 | |
| 868 | const int rc = SQLITE3_CALL(sqlite3_step(sql_stmt_read_matches_)); |
| 869 | FeatureMatchesBlob blob = ReadDynamicMatrixBlob<FeatureMatchesBlob>( |
| 870 | sql_stmt_read_matches_, rc, 0); |
| 871 | |
| 872 | if (ShouldSwapImagePair(image_id1, image_id2)) { |
| 873 | SwapFeatureMatchesBlob(&blob); |
| 874 | } |
| 875 | return blob; |
| 876 | } |
| 877 | |
| 878 | FeatureMatches ReadMatches(image_t image_id1, |
| 879 | image_t image_id2) const override { |
nothing calls this directly
no test coverage detected