14
14
namespace open3d {
15
15
namespace camera {
16
16
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" );
19
19
py::class_<PinholeCameraIntrinsic> pinhole_intr (
20
- m , " PinholeCameraIntrinsic" ,
20
+ m_camera , " PinholeCameraIntrinsic" ,
21
21
" PinholeCameraIntrinsic class stores intrinsic camera matrix, and "
22
22
" 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" ));
23
59
py::detail::bind_default_constructor<PinholeCameraIntrinsic>(pinhole_intr);
24
60
py::detail::bind_copy_functions<PinholeCameraIntrinsic>(pinhole_intr);
25
61
pinhole_intr
@@ -64,50 +100,28 @@ void pybind_camera_classes(py::module &m) {
64
100
std::string (
65
101
" .\n Access intrinsics with intrinsic_matrix." );
66
102
});
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" ,
69
106
" set_intrinsics" ,
70
107
{{" width" , " Width of the image." },
71
108
{" height" , " Height of the image." },
72
109
{" fx" , " X-axis focal length" },
73
110
{" fy" , " Y-axis focal length." },
74
111
{" cx" , " X-axis principle point." },
75
112
{" cy" , " Y-axis principle point." }});
76
- docstring::ClassMethodDocInject (m , " PinholeCameraIntrinsic" ,
113
+ docstring::ClassMethodDocInject (m_camera , " PinholeCameraIntrinsic" ,
77
114
" get_focal_length" );
78
- docstring::ClassMethodDocInject (m , " PinholeCameraIntrinsic" ,
115
+ docstring::ClassMethodDocInject (m_camera , " PinholeCameraIntrinsic" ,
79
116
" 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" );
106
121
107
122
// 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" ));
111
125
py::detail::bind_default_constructor<PinholeCameraParameters>(
112
126
pinhole_param);
113
127
py::detail::bind_copy_functions<PinholeCameraParameters>(pinhole_param);
@@ -125,10 +139,8 @@ void pybind_camera_classes(py::module &m) {
125
139
});
126
140
127
141
// 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" ));
132
144
py::detail::bind_default_constructor<PinholeCameraTrajectory>(pinhole_traj);
133
145
py::detail::bind_copy_functions<PinholeCameraTrajectory>(pinhole_traj);
134
146
pinhole_traj
@@ -141,10 +153,5 @@ void pybind_camera_classes(py::module &m) {
141
153
});
142
154
}
143
155
144
- void pybind_camera (py::module &m) {
145
- py::module m_submodule = m.def_submodule (" camera" );
146
- pybind_camera_classes (m_submodule);
147
- }
148
-
149
156
} // namespace camera
150
157
} // namespace open3d
0 commit comments