ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
renderoption.cpp
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 // clang-format off
9 #include "pybind/visualization/visualization_trampoline.h" // must include first
10 // clang-format on
11 
13 
14 #include <IJsonConvertibleIO.h>
15 
16 #include "pybind/docstring.h"
18 
19 namespace cloudViewer {
20 namespace visualization {
21 
22 void pybind_renderoption(py::module &m) {
23  // cloudViewer.visualization.RenderOption
24  py::class_<visualization::RenderOption,
25  std::shared_ptr<visualization::RenderOption>>
26  renderoption(m, "RenderOption",
27  "Defines rendering options for visualizer.");
28  py::detail::bind_default_constructor<visualization::RenderOption>(
29  renderoption);
30  renderoption
31  .def("__repr__",
32  [](const visualization::RenderOption &vc) {
33  return std::string("RenderOption");
34  })
35  .def(
36  "load_from_json",
38  const fs::path &filename) {
39  io::ReadIJsonConvertible(filename.string(), ro);
40  },
41  "Function to load visualization::RenderOption from a JSON "
42  "file.",
43  "filename"_a)
44  .def(
45  "save_to_json",
47  const fs::path &filename) {
48  io::WriteIJsonConvertible(filename.string(), ro);
49  },
50  "Function to save visualization::RenderOption to a JSON "
51  "file.",
52  "filename"_a)
53  .def_readwrite(
54  "background_color",
56  "float numpy array of size ``(3,)``: Background RGB color.")
57  .def_readwrite("light_on", &visualization::RenderOption::light_on_,
58  "bool: Whether to turn on Phong lighting.")
59  .def_readwrite("point_size",
61  "float: Point size for ``PointCloud``.")
62  .def_readwrite("line_width",
64  "float: Line width for ``LineSet``.")
65  .def_readwrite("point_show_normal",
67  "bool: Whether to show normal for ``PointCloud``.")
68  .def_readwrite("show_coordinate_frame",
70  "bool: Whether to show coordinate frame.")
71  .def_readwrite(
72  "mesh_show_back_face",
74  "bool: Whether to show back faces for ``TriangleMesh``.")
75  .def_readwrite(
76  "mesh_show_wireframe",
78  "bool: Whether to show wireframe for ``TriangleMesh``.")
79  .def_readwrite("point_color_option",
81  "``PointColorOption``: Point color option for "
82  "``PointCloud``.")
83  .def_readwrite("mesh_shade_option",
85  "``MeshShadeOption``: Mesh shading option for "
86  "``TriangleMesh``.")
87  .def_readwrite(
88  "mesh_color_option",
90  "``MeshColorOption``: Color option for ``TriangleMesh``.");
91  docstring::ClassMethodDocInject(m, "RenderOption", "load_from_json",
92  {{"filename", "Path to file."}});
93  docstring::ClassMethodDocInject(m, "RenderOption", "save_to_json",
94  {{"filename", "Path to file."}});
95 
96  // This is a nested class, but now it's bind to the module
97  // cv3d.visualization.PointColorOption
98  py::native_enum<visualization::RenderOption::PointColorOption>
99  enum_point_color_option(
100  m, "PointColorOption", "enum.Enum",
101  "Enum class for point color for ``PointCloud``.");
102  enum_point_color_option
103  .value("Default",
105  .value("Color",
107  .value("XCoordinate",
109  .value("YCoordinate",
111  .value("ZCoordinate",
113  .value("Normal",
115  .finalize();
116 
117  // This is a nested class, but now it's bind to the module
118  // cv3d.visualization.MeshShadeOption
119  py::native_enum<visualization::RenderOption::MeshShadeOption>
120  enum_mesh_shade_option(
121  m, "MeshShadeOption", "enum.Enum",
122  "Enum class for mesh shading for ``TriangleMesh``.");
123  enum_mesh_shade_option
124  .value("Default",
126  .value("Color",
128  .finalize();
129 
130  // This is a nested class, but now it's bind to the module
131  // cv3d.visualization.MeshColorOption
132  py::native_enum<visualization::RenderOption::MeshColorOption>
133  enum_mesh_clor_option(m, "MeshColorOption", "enum.Enum",
134  "Enum class for color for ``TriangleMesh``.");
135  enum_mesh_clor_option
136  .value("Default",
139  .value("XCoordinate",
141  .value("YCoordinate",
143  .value("ZCoordinate",
145  .value("Normal",
147  .finalize();
148 }
149 
150 void pybind_renderoption_method(py::module &m) {}
151 
152 } // namespace visualization
153 } // namespace cloudViewer
std::string filename
Defines rendering options for visualizer.
Definition: RenderOption.h:20
bool mesh_show_back_face_
Whether to show back faces for TriangleMesh.
Definition: RenderOption.h:190
Eigen::Vector3d background_color_
Background RGB color.
Definition: RenderOption.h:161
MeshColorOption mesh_color_option_
Color option for TriangleMesh.
Definition: RenderOption.h:188
bool point_show_normal_
Whether to show normal for PointCloud.
Definition: RenderOption.h:182
double point_size_
Point size for PointCloud.
Definition: RenderOption.h:178
double line_width_
Line width for LineSet.
Definition: RenderOption.h:197
MeshShadeOption mesh_shade_option_
Mesh shading option for TriangleMesh.
Definition: RenderOption.h:186
bool show_coordinate_frame_
Whether to show coordinate frame.
Definition: RenderOption.h:206
bool light_on_
Whether to turn on Phong lighting.
Definition: RenderOption.h:168
PointColorOption point_color_option_
Point color option for PointCloud.
Definition: RenderOption.h:180
void ClassMethodDocInject(py::module &pybind_module, const std::string &class_name, const std::string &function_name, const std::unordered_map< std::string, std::string > &map_parameter_body_docs)
Definition: docstring.cpp:27
bool WriteIJsonConvertible(const std::string &filename, const cloudViewer::utility::IJsonConvertible &object)
bool ReadIJsonConvertible(const std::string &filename, cloudViewer::utility::IJsonConvertible &object)
static const std::string path
Definition: PointCloud.cpp:59
void pybind_renderoption(py::module &m)
void pybind_renderoption_method(py::module &m)
Generic file read and write utility for python interface.