1414namespace open3d {
1515namespace camera {
1616
17- void pybind_camera_classes (py::module &m) {
18- // open3d. camera.PinholeCameraIntrinsic
17+ void pybind_camera_declarations (py::module &m) {
18+ py:: module m_camera = m. def_submodule ( " camera" );
1919 py::class_<PinholeCameraIntrinsic> pinhole_intr (
20- m , " PinholeCameraIntrinsic" ,
20+ m_camera , " PinholeCameraIntrinsic" ,
2121 " PinholeCameraIntrinsic class stores intrinsic camera matrix, and "
2222 " image height and width." );
23+ // open3d.camera.PinholeCameraIntrinsicParameters
24+ py::enum_<PinholeCameraIntrinsicParameters> pinhole_intr_params (
25+ m_camera, " PinholeCameraIntrinsicParameters" , py::arithmetic (),
26+ " PinholeCameraIntrinsicParameters" );
27+ pinhole_intr_params
28+ .value (" PrimeSenseDefault" ,
29+ PinholeCameraIntrinsicParameters::PrimeSenseDefault,
30+ " Default camera intrinsic parameter for PrimeSense." )
31+ .value (" Kinect2DepthCameraDefault" ,
32+ PinholeCameraIntrinsicParameters::Kinect2DepthCameraDefault,
33+ " Default camera intrinsic parameter for Kinect2 depth "
34+ " camera." )
35+ .value (" Kinect2ColorCameraDefault" ,
36+ PinholeCameraIntrinsicParameters::Kinect2ColorCameraDefault,
37+ " Default camera intrinsic parameter for Kinect2 color "
38+ " camera." )
39+ .export_values ();
40+ pinhole_intr_params.attr (" __doc__" ) = docstring::static_property (
41+ py::cpp_function ([](py::handle arg) -> std::string {
42+ return " Enum class that contains default camera intrinsic "
43+ " parameters for different sensors." ;
44+ }),
45+ py::none (), py::none (), " " );
46+ py::class_<PinholeCameraParameters> pinhole_param (
47+ m_camera, " PinholeCameraParameters" ,
48+ " Contains both intrinsic and extrinsic pinhole camera parameters." );
49+ py::class_<PinholeCameraTrajectory> pinhole_traj (
50+ m_camera, " PinholeCameraTrajectory" ,
51+ " Contains a list of ``PinholeCameraParameters``, useful to storing "
52+ " trajectories." );
53+ }
54+ void pybind_camera_definitions (py::module &m) {
55+ auto m_camera = static_cast <py::module >(m.attr (" camera" ));
56+ // open3d.camera.PinholeCameraIntrinsic
57+ auto pinhole_intr = static_cast <py::class_<PinholeCameraIntrinsic>>(
58+ m_camera.attr (" PinholeCameraIntrinsic" ));
2359 py::detail::bind_default_constructor<PinholeCameraIntrinsic>(pinhole_intr);
2460 py::detail::bind_copy_functions<PinholeCameraIntrinsic>(pinhole_intr);
2561 pinhole_intr
@@ -64,50 +100,28 @@ void pybind_camera_classes(py::module &m) {
64100 std::string (
65101 " .\n Access intrinsics with intrinsic_matrix." );
66102 });
67- docstring::ClassMethodDocInject (m, " PinholeCameraIntrinsic" , " __init__" );
68- docstring::ClassMethodDocInject (m, " PinholeCameraIntrinsic" ,
103+ docstring::ClassMethodDocInject (m_camera, " PinholeCameraIntrinsic" ,
104+ " __init__" );
105+ docstring::ClassMethodDocInject (m_camera, " PinholeCameraIntrinsic" ,
69106 " set_intrinsics" ,
70107 {{" width" , " Width of the image." },
71108 {" height" , " Height of the image." },
72109 {" fx" , " X-axis focal length" },
73110 {" fy" , " Y-axis focal length." },
74111 {" cx" , " X-axis principle point." },
75112 {" cy" , " Y-axis principle point." }});
76- docstring::ClassMethodDocInject (m , " PinholeCameraIntrinsic" ,
113+ docstring::ClassMethodDocInject (m_camera , " PinholeCameraIntrinsic" ,
77114 " get_focal_length" );
78- docstring::ClassMethodDocInject (m , " PinholeCameraIntrinsic" ,
115+ docstring::ClassMethodDocInject (m_camera , " PinholeCameraIntrinsic" ,
79116 " get_principal_point" );
80- docstring::ClassMethodDocInject (m, " PinholeCameraIntrinsic" , " get_skew" );
81- docstring::ClassMethodDocInject (m, " PinholeCameraIntrinsic" , " is_valid" );
82-
83- // open3d.camera.PinholeCameraIntrinsicParameters
84- py::enum_<PinholeCameraIntrinsicParameters> pinhole_intr_params (
85- m, " PinholeCameraIntrinsicParameters" , py::arithmetic (),
86- " PinholeCameraIntrinsicParameters" );
87- pinhole_intr_params
88- .value (" PrimeSenseDefault" ,
89- PinholeCameraIntrinsicParameters::PrimeSenseDefault,
90- " Default camera intrinsic parameter for PrimeSense." )
91- .value (" Kinect2DepthCameraDefault" ,
92- PinholeCameraIntrinsicParameters::Kinect2DepthCameraDefault,
93- " Default camera intrinsic parameter for Kinect2 depth "
94- " camera." )
95- .value (" Kinect2ColorCameraDefault" ,
96- PinholeCameraIntrinsicParameters::Kinect2ColorCameraDefault,
97- " Default camera intrinsic parameter for Kinect2 color "
98- " camera." )
99- .export_values ();
100- pinhole_intr_params.attr (" __doc__" ) = docstring::static_property (
101- py::cpp_function ([](py::handle arg) -> std::string {
102- return " Enum class that contains default camera intrinsic "
103- " parameters for different sensors." ;
104- }),
105- py::none (), py::none (), " " );
117+ docstring::ClassMethodDocInject (m_camera, " PinholeCameraIntrinsic" ,
118+ " get_skew" );
119+ docstring::ClassMethodDocInject (m_camera, " PinholeCameraIntrinsic" ,
120+ " is_valid" );
106121
107122 // open3d.camera.PinholeCameraParameters
108- py::class_<PinholeCameraParameters> pinhole_param (
109- m, " PinholeCameraParameters" ,
110- " Contains both intrinsic and extrinsic pinhole camera parameters." );
123+ auto pinhole_param = static_cast <py::class_<PinholeCameraParameters>>(
124+ m_camera.attr (" PinholeCameraParameters" ));
111125 py::detail::bind_default_constructor<PinholeCameraParameters>(
112126 pinhole_param);
113127 py::detail::bind_copy_functions<PinholeCameraParameters>(pinhole_param);
@@ -125,10 +139,8 @@ void pybind_camera_classes(py::module &m) {
125139 });
126140
127141 // open3d.camera.PinholeCameraTrajectory
128- py::class_<PinholeCameraTrajectory> pinhole_traj (
129- m, " PinholeCameraTrajectory" ,
130- " Contains a list of ``PinholeCameraParameters``, useful to storing "
131- " trajectories." );
142+ auto pinhole_traj = static_cast <py::class_<PinholeCameraTrajectory>>(
143+ m_camera.attr (" PinholeCameraTrajectory" ));
132144 py::detail::bind_default_constructor<PinholeCameraTrajectory>(pinhole_traj);
133145 py::detail::bind_copy_functions<PinholeCameraTrajectory>(pinhole_traj);
134146 pinhole_traj
@@ -141,10 +153,5 @@ void pybind_camera_classes(py::module &m) {
141153 });
142154}
143155
144- void pybind_camera (py::module &m) {
145- py::module m_submodule = m.def_submodule (" camera" );
146- pybind_camera_classes (m_submodule);
147- }
148-
149156} // namespace camera
150157} // namespace open3d
0 commit comments