| 329 | } |
| 330 | |
| 331 | Camera ReadCameraRow(sqlite3_stmt* sql_stmt) { |
| 332 | Camera camera; |
| 333 | |
| 334 | camera.camera_id = static_cast<camera_t>(sqlite3_column_int64(sql_stmt, 0)); |
| 335 | camera.model_id = |
| 336 | static_cast<CameraModelId>(sqlite3_column_int64(sql_stmt, 1)); |
| 337 | camera.width = static_cast<size_t>(sqlite3_column_int64(sql_stmt, 2)); |
| 338 | camera.height = static_cast<size_t>(sqlite3_column_int64(sql_stmt, 3)); |
| 339 | |
| 340 | const size_t num_params_bytes = |
| 341 | static_cast<size_t>(sqlite3_column_bytes(sql_stmt, 4)); |
| 342 | const size_t num_params = num_params_bytes / sizeof(double); |
| 343 | THROW_CHECK_EQ(num_params, CameraModelNumParams(camera.model_id)); |
| 344 | camera.params.resize(num_params, 0.); |
| 345 | std::memcpy( |
| 346 | camera.params.data(), sqlite3_column_blob(sql_stmt, 4), num_params_bytes); |
| 347 | |
| 348 | camera.has_prior_focal_length = sqlite3_column_int64(sql_stmt, 5) != 0; |
| 349 | |
| 350 | return camera; |
| 351 | } |
| 352 | |
| 353 | void ReadFrameRows(sqlite3_stmt* sql_stmt, |
| 354 | const std::function<void(Frame)>& new_frame_callback) { |
no test coverage detected