| 23 | namespace py = pybind11; |
| 24 | |
| 25 | void BindCamera(py::module& m) { |
| 26 | py::enum_<CameraModelId> PyCameraModelId(m, "CameraModelId"); |
| 27 | PyCameraModelId.value("INVALID", CameraModelId::kInvalid); |
| 28 | #define CAMERA_MODEL_CASE(CameraModel) \ |
| 29 | PyCameraModelId.value(CameraModel::model_name.c_str(), CameraModel::model_id); |
| 30 | |
| 31 | CAMERA_MODEL_CASES |
| 32 | |
| 33 | #undef CAMERA_MODEL_CASE |
| 34 | AddStringToEnumConstructor(PyCameraModelId); |
| 35 | py::implicitly_convertible<int, CameraModelId>(); |
| 36 | |
| 37 | py::classh<Camera> PyCamera(m, "Camera"); |
| 38 | PyCamera.def(py::init<>()) |
| 39 | .def_static("create_from_model_id", |
| 40 | &Camera::CreateFromModelId, |
| 41 | "camera_id"_a, |
| 42 | "model"_a, |
| 43 | "focal_length"_a, |
| 44 | "width"_a, |
| 45 | "height"_a) |
| 46 | .def_static("create_from_model_name", |
| 47 | &Camera::CreateFromModelName, |
| 48 | "camera_id"_a, |
| 49 | "model_name"_a, |
| 50 | "focal_length"_a, |
| 51 | "width"_a, |
| 52 | "height"_a, |
| 53 | "Create camera from model name string.") |
| 54 | .def_readwrite( |
| 55 | "camera_id", &Camera::camera_id, "Unique identifier of the camera.") |
| 56 | .def_property_readonly( |
| 57 | "sensor_id", &Camera::SensorId, "Unique identifier of the sensor.") |
| 58 | .def_readwrite("model", &Camera::model_id, "Camera model.") |
| 59 | .def_property_readonly( |
| 60 | "model_name", &Camera::ModelName, "Camera model name as string.") |
| 61 | .def_readwrite("width", &Camera::width, "Width of camera sensor.") |
| 62 | .def_readwrite("height", &Camera::height, "Height of camera sensor.") |
| 63 | .def("mean_focal_length", &Camera::MeanFocalLength) |
| 64 | .def_property( |
| 65 | "focal_length", &Camera::FocalLength, &Camera::SetFocalLength) |
| 66 | .def_property( |
| 67 | "focal_length_x", &Camera::FocalLengthX, &Camera::SetFocalLengthX) |
| 68 | .def_property( |
| 69 | "focal_length_y", &Camera::FocalLengthY, &Camera::SetFocalLengthY) |
| 70 | .def_readwrite("has_prior_focal_length", &Camera::has_prior_focal_length) |
| 71 | .def_property("principal_point_x", |
| 72 | &Camera::PrincipalPointX, |
| 73 | &Camera::SetPrincipalPointX) |
| 74 | .def_property("principal_point_y", |
| 75 | &Camera::PrincipalPointY, |
| 76 | &Camera::SetPrincipalPointY) |
| 77 | .def("focal_length_idxs", |
| 78 | &Camera::FocalLengthIdxs, |
| 79 | "Indices of focal length parameters in params property.") |
| 80 | .def("principal_point_idxs", |
| 81 | &Camera::PrincipalPointIdxs, |
| 82 | "Indices of principal point parameters in params property.") |
no test coverage detected