1 #ifdef NANOGUI_PYTHON
2 
3 #include "python.h"
4 
5 DECLARE_WIDGET(ColorWheel);
6 DECLARE_WIDGET(ColorPicker);
7 DECLARE_WIDGET(Graph);
8 DECLARE_WIDGET(ImageView);
9 DECLARE_WIDGET(ImagePanel);
10 
register_misc(py::module & m)11 void register_misc(py::module &m) {
12     py::class_<ColorWheel, Widget, ref<ColorWheel>, PyColorWheel>(m, "ColorWheel", D(ColorWheel))
13         .def(py::init<Widget *>(), py::arg("parent"), D(ColorWheel, ColorWheel))
14         .def(py::init<Widget *, const Color &>(), py::arg("parent"), py::arg("Color"))
15         .def("color", &ColorWheel::color, D(ColorWheel, color))
16         .def("setColor", &ColorWheel::setColor, D(ColorWheel, setColor))
17         .def("callback", &ColorWheel::callback, D(ColorWheel, callback))
18         .def("setCallback", &ColorWheel::setCallback, D(ColorWheel, setCallback));
19 
20     py::class_<ColorPicker, PopupButton, ref<ColorPicker>, PyColorPicker>(m, "ColorPicker", D(ColorPicker))
21         .def(py::init<Widget *>(), py::arg("parent"), D(ColorPicker, ColorPicker))
22         .def(py::init<Widget *, const Color &>(), py::arg("parent"), py::arg("Color"))
23         .def("color", &ColorPicker::color, D(ColorPicker, color))
24         .def("setColor", &ColorPicker::setColor, D(ColorPicker, setColor))
25         .def("callback", &ColorPicker::callback, D(ColorPicker, callback))
26         .def("setCallback", &ColorPicker::setCallback, D(ColorPicker, setCallback));
27 
28     py::class_<Graph, Widget, ref<Graph>, PyGraph>(m, "Graph", D(Graph))
29         .def(py::init<Widget *, const std::string &>(), py::arg("parent"),
30              py::arg("caption") = std::string("Untitled"), D(Graph, Graph))
31         .def("caption", &Graph::caption, D(Graph, caption))
32         .def("setCaption", &Graph::setCaption, D(Graph, setCaption))
33         .def("header", &Graph::header, D(Graph, header))
34         .def("setHeader", &Graph::setHeader, D(Graph, setHeader))
35         .def("footer", &Graph::footer, D(Graph, footer))
36         .def("setFooter", &Graph::setFooter, D(Graph, setFooter))
37         .def("backgroundColor", &Graph::backgroundColor, D(Graph, backgroundColor))
38         .def("setBackgroundColor", &Graph::setBackgroundColor, D(Graph, setBackgroundColor))
39         .def("foregroundColor", &Graph::foregroundColor, D(Graph, foregroundColor))
40         .def("setForegroundColor", &Graph::setForegroundColor, D(Graph, setForegroundColor))
41         .def("textColor", &Graph::textColor, D(Graph, textColor))
42         .def("setTextColor", &Graph::setTextColor, D(Graph, setTextColor))
43         .def("values", (VectorXf &(Graph::*)(void)) &Graph::values, D(Graph, values))
44         .def("setValues", &Graph::setValues, D(Graph, setValues));
45 
46     py::class_<ImageView, Widget, ref<ImageView>, PyImageView>(m, "ImageView", D(ImageView))
47         .def(py::init<Widget *, GLuint>(), D(ImageView, ImageView))
48         .def("bindImage", &ImageView::bindImage, D(ImageView, bindImage))
49         .def("imageShader", &ImageView::imageShader, D(ImageView, imageShader))
50         .def("scaledImageSize", &ImageView::scaledImageSize, D(ImageView, scaledImageSize))
51         .def("offset", &ImageView::offset, D(ImageView, offset))
52         .def("setOffset", &ImageView::setOffset, D(ImageView, setOffset))
53         .def("scale", &ImageView::scale, D(ImageView, scale))
54         .def("fixedOffset", &ImageView::fixedOffset, D(ImageView, fixedOffset))
55         .def("setFixedOffset", &ImageView::setFixedOffset, D(ImageView, setFixedOffset))
56         .def("fixedScale", &ImageView::fixedScale, D(ImageView, fixedScale))
57         .def("setFixedScale", &ImageView::setFixedScale, D(ImageView, setFixedScale))
58         .def("zoomSensitivity", &ImageView::zoomSensitivity, D(ImageView, zoomSensitivity))
59         .def("setZoomSensitivity", &ImageView::setZoomSensitivity, D(ImageView, setZoomSensitivity))
60         .def("gridThreshold", &ImageView::gridThreshold, D(ImageView, gridThreshold))
61         .def("setGridThreshold", &ImageView::setGridThreshold, D(ImageView, setGridThreshold))
62         .def("pixelInfoThreshold", &ImageView::pixelInfoThreshold, D(ImageView, pixelInfoThreshold))
63         .def("setPixelInfoThreshold", &ImageView::setPixelInfoThreshold, D(ImageView, setPixelInfoThreshold))
64         .def("setPixelInfoCallback", &ImageView::setPixelInfoCallback, D(ImageView, setPixelInfoCallback))
65         .def("pixelInfoCallback", &ImageView::pixelInfoCallback, D(ImageView, pixelInfoCallback))
66         .def("setFontScaleFactor", &ImageView::setFontScaleFactor, D(ImageView, setFontScaleFactor))
67         .def("fontScaleFactor", &ImageView::fontScaleFactor, D(ImageView, fontScaleFactor))
68         .def("imageCoordinateAt", &ImageView::imageCoordinateAt, D(ImageView, imageCoordinateAt))
69         .def("clampedImageCoordinateAt", &ImageView::clampedImageCoordinateAt, D(ImageView, clampedImageCoordinateAt))
70         .def("positionForCoordinate", &ImageView::positionForCoordinate, D(ImageView, positionForCoordinate))
71         .def("setImageCoordinateAt", &ImageView::setImageCoordinateAt, D(ImageView, setImageCoordinateAt))
72         .def("center",&ImageView::center, D(ImageView, center))
73         .def("fit", &ImageView::fit, D(ImageView, fit))
74         .def("setScaleCentered", &ImageView::setScaleCentered, D(ImageView, setScaleCentered))
75         .def("moveOffset", &ImageView::moveOffset, D(ImageView, moveOffset))
76         .def("zoom", &ImageView::zoom, D(ImageView, zoom))
77         .def("gridVisible", &ImageView::gridVisible, D(ImageView, gridVisible))
78         .def("pixelInfoVisible", &ImageView::pixelInfoVisible, D(ImageView, pixelInfoVisible))
79         .def("helpersVisible", &ImageView::helpersVisible, D(ImageView, helpersVisible));
80 
81     py::class_<ImagePanel, Widget, ref<ImagePanel>, PyImagePanel>(m, "ImagePanel", D(ImagePanel))
82         .def(py::init<Widget *>(), py::arg("parent"), D(ImagePanel, ImagePanel))
83         .def("images", &ImagePanel::images, D(ImagePanel, images))
84         .def("setImages", &ImagePanel::setImages, D(ImagePanel, setImages))
85         .def("callback", &ImagePanel::callback, D(ImagePanel, callback))
86         .def("setCallback", &ImagePanel::setCallback, D(ImagePanel, setCallback));
87 }
88 
89 #endif
90