diff --git a/src/Mod/TechDraw/App/DrawViewPartPy.xml b/src/Mod/TechDraw/App/DrawViewPartPy.xml index 99e8871dcc..1a677c6342 100644 --- a/src/Mod/TechDraw/App/DrawViewPartPy.xml +++ b/src/Mod/TechDraw/App/DrawViewPartPy.xml @@ -18,11 +18,21 @@ getVisibleEdges() - get the visible edges in the View as Part::TopoShapeEdges + + + getVisibleVertexes() - get the visible vertexes as App.Vector in the View's coordinate system. + + getHiddenEdges() - get the hidden edges in the View as Part::TopoShapeEdges + + + getHiddenVertexes() - get the hidden vertexes as App.Vector in the View's coordinate system. + + id = makeCosmeticVertex(p1) - add a CosmeticVertex at p1 (View coordinates). Returns unique id vertex. diff --git a/src/Mod/TechDraw/App/DrawViewPartPyImp.cpp b/src/Mod/TechDraw/App/DrawViewPartPyImp.cpp index 25c2a3b99c..512e9b63ff 100644 --- a/src/Mod/TechDraw/App/DrawViewPartPyImp.cpp +++ b/src/Mod/TechDraw/App/DrawViewPartPyImp.cpp @@ -98,6 +98,46 @@ PyObject* DrawViewPartPy::getHiddenEdges(PyObject *args) return Py::new_reference_to(pEdgeList); } +PyObject* DrawViewPartPy::getVisibleVertexes(PyObject *args) +{ + if (!PyArg_ParseTuple(args, "")) { + return nullptr; + } + + DrawViewPart* dvp = getDrawViewPartPtr(); + Py::List pVertexList; + auto vertsAll = dvp->getVertexGeometry(); + for (auto& vert: vertsAll) { + if (vert->getHlrVisible()) { + PyObject* pVertex = new Base::VectorPy(new Base::Vector3d(vert->point())); + pVertexList.append(Py::asObject(pVertex)); + } + } + + return Py::new_reference_to(pVertexList); +} + +PyObject* DrawViewPartPy::getHiddenVertexes(PyObject *args) +{ + if (!PyArg_ParseTuple(args, "")) { + return nullptr; + } + + DrawViewPart* dvp = getDrawViewPartPtr(); + Py::List pVertexList; + auto vertsAll = dvp->getVertexGeometry(); + for (auto& vert: vertsAll) { + if (!vert->getHlrVisible()) { + PyObject* pVertex = new Base::VectorPy(new Base::Vector3d(vert->point())); + pVertexList.append(Py::asObject(pVertex)); + } + } + + return Py::new_reference_to(pVertexList); +} + + + PyObject* DrawViewPartPy::requestPaint(PyObject *args) { if (!PyArg_ParseTuple(args, "")) {