8 #include <pybind11/pybind11.h>
9 #include <pybind11/stl.h>
10 #include <pybind11/stl_bind.h>
16 #include "../casters.h"
19 using namespace pybind11::literals;
23 py::class_<ecvDisplayTools, ecvGenericDisplayTools> PyccDisplayTools(m,
"ccDisplayTools");
24 py::enum_<ecvDisplayTools::PICKING_MODE> PyPickingMode(PyccDisplayTools,
"PICKING_MODE");
25 py::enum_<ecvDisplayTools::INTERACTION_FLAG> PyInteractionFlag(
26 PyccDisplayTools,
"INTERACTION_FLAG", py::arithmetic());
27 py::enum_<ecvDisplayTools::MessagePosition> PyMessagePosition(PyccDisplayTools,
29 py::enum_<ecvDisplayTools::MessageType> PyMessageType(PyccDisplayTools,
"MessageType");
30 py::enum_<ecvDisplayTools::PivotVisibility> PyPivotVisibility(PyccDisplayTools,
33 PyPickingMode.value(
"NO_PICKING", ecvDisplayTools::PICKING_MODE::NO_PICKING)
34 .value(
"ENTITY_PICKING", ecvDisplayTools::PICKING_MODE::ENTITY_PICKING)
35 .value(
"ENTITY_RECT_PICKING", ecvDisplayTools::PICKING_MODE::ENTITY_RECT_PICKING)
36 .value(
"FAST_PICKING", ecvDisplayTools::PICKING_MODE::FAST_PICKING)
37 .value(
"POINT_PICKING", ecvDisplayTools::PICKING_MODE::POINT_PICKING)
38 .value(
"TRIANGLE_PICKING", ecvDisplayTools::PICKING_MODE::TRIANGLE_PICKING)
39 .value(
"POINT_OR_TRIANGLE_PICKING",
40 ecvDisplayTools::PICKING_MODE::POINT_OR_TRIANGLE_PICKING)
41 .value(
"POINT_OR_TRIANGLE_OR_LABEL_PICKING",
42 ecvDisplayTools::PICKING_MODE::POINT_OR_TRIANGLE_OR_LABEL_PICKING)
43 .value(
"LABEL_PICKING", ecvDisplayTools::PICKING_MODE::LABEL_PICKING)
44 .value(
"DEFAULT_PICKING", ecvDisplayTools::PICKING_MODE::DEFAULT_PICKING)
48 .value(
"INTERACT_NONE", ecvDisplayTools::INTERACTION_FLAGS::enum_type::INTERACT_NONE)
49 .value(
"INTERACT_ROTATE", ecvDisplayTools::INTERACTION_FLAGS::enum_type::INTERACT_ROTATE)
50 .value(
"INTERACT_PAN", ecvDisplayTools::INTERACTION_FLAGS::enum_type::INTERACT_PAN)
51 .value(
"INTERACT_CTRL_PAN",
52 ecvDisplayTools::INTERACTION_FLAGS::enum_type::INTERACT_CTRL_PAN)
53 .value(
"INTERACT_ZOOM_CAMERA",
54 ecvDisplayTools::INTERACTION_FLAGS::enum_type::INTERACT_ZOOM_CAMERA)
55 .value(
"INTERACT_2D_ITEMS",
56 ecvDisplayTools::INTERACTION_FLAGS::enum_type::INTERACT_2D_ITEMS)
57 .value(
"INTERACT_CLICKABLE_ITEMS",
58 ecvDisplayTools::INTERACTION_FLAGS::enum_type::INTERACT_CLICKABLE_ITEMS)
59 .value(
"INTERACT_TRANSFORM_ENTITIES",
60 ecvDisplayTools::INTERACTION_FLAGS::enum_type::INTERACT_TRANSFORM_ENTITIES)
61 .value(
"INTERACT_SIG_RB_CLICKED",
62 ecvDisplayTools::INTERACTION_FLAGS::enum_type::INTERACT_SIG_RB_CLICKED)
63 .value(
"INTERACT_SIG_LB_CLICKED",
64 ecvDisplayTools::INTERACTION_FLAGS::enum_type::INTERACT_SIG_LB_CLICKED)
65 .value(
"INTERACT_SIG_MOUSE_MOVED",
66 ecvDisplayTools::INTERACTION_FLAGS::enum_type::INTERACT_SIG_MOUSE_MOVED)
67 .value(
"INTERACT_SIG_BUTTON_RELEASED",
68 ecvDisplayTools::INTERACTION_FLAGS::enum_type::INTERACT_SIG_BUTTON_RELEASED)
69 .value(
"INTERACT_SIG_MB_CLICKED",
70 ecvDisplayTools::INTERACTION_FLAGS::enum_type::INTERACT_SIG_MB_CLICKED)
71 .value(
"INTERACT_SEND_ALL_SIGNALS",
72 ecvDisplayTools::INTERACTION_FLAGS::enum_type::INTERACT_SEND_ALL_SIGNALS)
73 .value(
"MODE_PAN_ONLY", ecvDisplayTools::INTERACTION_FLAGS::enum_type::MODE_PAN_ONLY)
74 .value(
"MODE_TRANSFORM_CAMERA",
75 ecvDisplayTools::INTERACTION_FLAGS::enum_type::MODE_TRANSFORM_CAMERA)
76 .value(
"MODE_TRANSFORM_ENTITIES",
77 ecvDisplayTools::INTERACTION_FLAGS::enum_type::MODE_TRANSFORM_ENTITIES)
81 .value(
"LOWER_LEFT_MESSAGE", ecvDisplayTools::MessagePosition::LOWER_LEFT_MESSAGE)
82 .value(
"UPPER_CENTER_MESSAGE", ecvDisplayTools::MessagePosition::UPPER_CENTER_MESSAGE)
83 .value(
"SCREEN_CENTER_MESSAGE", ecvDisplayTools::MessagePosition::SCREEN_CENTER_MESSAGE)
86 PyMessageType.value(
"CUSTOM_MESSAGE", ecvDisplayTools::MessageType::CUSTOM_MESSAGE)
87 .value(
"SCREEN_SIZE_MESSAGE", ecvDisplayTools::MessageType::SCREEN_SIZE_MESSAGE)
88 .value(
"PERSPECTIVE_STATE_MESSAGE", ecvDisplayTools::MessageType::PERSPECTIVE_STATE_MESSAGE)
89 .value(
"SUN_LIGHT_STATE_MESSAGE", ecvDisplayTools::MessageType::SUN_LIGHT_STATE_MESSAGE)
90 .value(
"CUSTOM_LIGHT_STATE_MESSAGE",
91 ecvDisplayTools::MessageType::CUSTOM_LIGHT_STATE_MESSAGE)
92 .value(
"MANUAL_TRANSFORMATION_MESSAGE",
93 ecvDisplayTools::MessageType::MANUAL_TRANSFORMATION_MESSAGE)
94 .value(
"MANUAL_SEGMENTATION_MESSAGE",
95 ecvDisplayTools::MessageType::MANUAL_SEGMENTATION_MESSAGE)
96 .value(
"ROTAION_LOCK_MESSAGE", ecvDisplayTools::MessageType::ROTAION_LOCK_MESSAGE)
97 .value(
"FULL_SCREEN_MESSAGE", ecvDisplayTools::MessageType::FULL_SCREEN_MESSAGE)
100 PyPivotVisibility.value(
"PIVOT_HIDE", ecvDisplayTools::PivotVisibility::PIVOT_HIDE)
101 .value(
"PIVOT_SHOW_ON_MOVE", ecvDisplayTools::PivotVisibility::PIVOT_SHOW_ON_MOVE)
102 .value(
"PIVOT_ALWAYS_SHOW", ecvDisplayTools::PivotVisibility::PIVOT_ALWAYS_SHOW)
145 .def_static(
"displayNewMessage",
150 "displayMaxDelay_sec"_a = 2,
151 "type"_a = ecvDisplayTools::MessageType::CUSTOM_MESSAGE)
153 "setPivotVisibility",
158 .def_static(
"setPivotPoint",
161 "autoUpdateCameraPos"_a =
false,
166 .def_static(
"setPerspectiveState",
169 "objectCenteredView"_a)
174 .def_static(
"updateConstellationCenterAndZoom",
176 "boundingBox"_a =
nullptr,
187 .def_static(
"setPickingMode",
189 "mode"_a = ecvDisplayTools::PICKING_MODE::DEFAULT_PICKING)
195 .def_static(
"setPointSize",
200 .def_static(
"setLineWidth",
216 .def_static(
"renderToFile",
219 "zoomFactor"_a = 1.0f,
220 "dontScaleFeatures"_a =
false,
221 "renderOverlayItems"_a =
false)
224 .def_static(
"setRectangularPickingAllowed",
238 .def_static(
"redrawDisplay",
241 "forceRedraw"_a =
true)
242 .def_static(
"refreshDisplay",
245 "forceRedraw"_a =
true)
256 [](
const QString &text,
261 const unsigned char *
color,
273 .def_static(
"display3DLabel",
285 .def_static(
"setupProjectiveViewport",
290 "viewerBasedPerspective"_a =
true,
291 "bubbleViewMode"_a =
false)
CC_VIEW_ORIENTATION
View orientation.
constexpr Rgbub defaultLabelBkgColor(MAX, MAX, MAX)