| 212 | } |
| 213 | |
| 214 | span<const size_t> CameraModelExtraParamsIdxs(const CameraModelId model_id) { |
| 215 | switch (model_id) { |
| 216 | // Only perspective models have extra parameters; spherical models have |
| 217 | // none. Unknown models throw via the default case. |
| 218 | #define CAMERA_MODEL_CASE(CameraModel) \ |
| 219 | case CameraModel::model_id: \ |
| 220 | return {CameraModel::extra_params_idxs.data(), \ |
| 221 | CameraModel::extra_params_idxs.size()}; |
| 222 | PERSPECTIVE_CAMERA_MODEL_CASES |
| 223 | #undef CAMERA_MODEL_CASE |
| 224 | #define CAMERA_MODEL_CASE(CameraModel) \ |
| 225 | case CameraModel::model_id: \ |
| 226 | return {nullptr, 0}; |
| 227 | SPHERICAL_CAMERA_MODEL_CASES |
| 228 | #undef CAMERA_MODEL_CASE |
| 229 | default: |
| 230 | CAMERA_MODEL_DOES_NOT_EXIST_EXCEPTION |
| 231 | } |
| 232 | return {nullptr, 0}; |
| 233 | } |
| 234 | |
| 235 | span<const size_t> CameraModelMetaDataParamsIdxs(const CameraModelId model_id) { |
| 236 | switch (model_id) { |
no outgoing calls