From abba933757145d5ea7a172b0d6af6128ce27e3c4 Mon Sep 17 00:00:00 2001 From: 0penBrain <48731257+0penBrain@users.noreply.github.com> Date: Mon, 8 Nov 2021 22:36:40 +0100 Subject: [PATCH] [Gui] Expose API for corner axis cross visibility/size to Python --- src/Gui/View3DPy.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ src/Gui/View3DPy.h | 4 ++++ 2 files changed, 48 insertions(+) diff --git a/src/Gui/View3DPy.cpp b/src/Gui/View3DPy.cpp index 23a0a68da6..a5eae1992d 100644 --- a/src/Gui/View3DPy.cpp +++ b/src/Gui/View3DPy.cpp @@ -207,6 +207,14 @@ void View3DInventorPy::init_type() "hasClippingPlane(): check whether this clipping plane is active"); add_varargs_method("graphicsView",&View3DInventorPy::graphicsView, "graphicsView(): Access this view as QGraphicsView"); + add_varargs_method("setCornerCrossVisible",&View3DInventorPy::setCornerCrossVisible, + "setCornerCrossVisible(bool): Defines corner axis cross visibility"); + add_varargs_method("isCornerCrossVisible",&View3DInventorPy::isCornerCrossVisible, + "isCornerCrossVisible(): Returns current corner axis cross visibility"); + add_varargs_method("setCornerCrossSize",&View3DInventorPy::setCornerCrossSize, + "setCornerCrossSize(int): Defines corner axis cross size"); + add_varargs_method("getCornerCrossSize",&View3DInventorPy::getCornerCrossSize, + "getCornerCrossSize(): Returns current corner axis cross size"); add_varargs_method("cast_to_base", &View3DInventorPy::cast_to_base, "cast_to_base() cast to MDIView class"); } @@ -2646,6 +2654,42 @@ Py::Object View3DInventorPy::graphicsView(const Py::Tuple& args) return wrap.fromQWidget(getView3DIventorPtr()->getViewer(), "QGraphicsView"); } +Py::Object View3DInventorPy::setCornerCrossVisible(const Py::Tuple& args) +{ + int ok; + if (!PyArg_ParseTuple(args.ptr(), "i", &ok)) + throw Py::Exception(); + getView3DIventorPtr()->getViewer()->setFeedbackVisibility(ok!=0); + getView3DIventorPtr()->getViewer()->redraw(); // added because isViewing() returns False when focus is in Python Console + return Py::None(); +} + +Py::Object View3DInventorPy::isCornerCrossVisible(const Py::Tuple& args) +{ + if (!PyArg_ParseTuple(args.ptr(), "")) + throw Py::Exception(); + bool ok = getView3DIventorPtr()->getViewer()->isFeedbackVisible(); + return Py::Boolean(ok ? true : false); +} + +Py::Object View3DInventorPy::setCornerCrossSize(const Py::Tuple& args) +{ + int size=0; + if (!PyArg_ParseTuple(args.ptr(), "i", &size)) + throw Py::Exception(); + getView3DIventorPtr()->getViewer()->setFeedbackSize(size); + getView3DIventorPtr()->getViewer()->redraw(); // added because isViewing() returns False when focus is in Python Console + return Py::None(); +} + +Py::Object View3DInventorPy::getCornerCrossSize(const Py::Tuple& args) +{ + if (!PyArg_ParseTuple(args.ptr(), "")) + throw Py::Exception(); + int size = getView3DIventorPtr()->getViewer()->getFeedbackSize(); + return Py::Int(size); +} + Py::Object View3DInventorPy::cast_to_base(const Py::Tuple&) { return Gui::MDIViewPy::create(getView3DIventorPtr()); diff --git a/src/Gui/View3DPy.h b/src/Gui/View3DPy.h index 9a7bf17148..49076c6645 100644 --- a/src/Gui/View3DPy.h +++ b/src/Gui/View3DPy.h @@ -139,6 +139,10 @@ public: Py::Object toggleClippingPlane(const Py::Tuple& args, const Py::Dict &); Py::Object hasClippingPlane(const Py::Tuple& args); Py::Object graphicsView(const Py::Tuple& args); + Py::Object setCornerCrossVisible(const Py::Tuple& args); + Py::Object isCornerCrossVisible(const Py::Tuple& args); + Py::Object setCornerCrossSize(const Py::Tuple& args); + Py::Object getCornerCrossSize(const Py::Tuple& args); private: static void eventCallback(void * ud, SoEventCallback * n);