diff --git a/src/Mod/TechDraw/App/DrawViewPartPy.xml b/src/Mod/TechDraw/App/DrawViewPartPy.xml
index 2eb898e9d3..91c7efe9d5 100644
--- a/src/Mod/TechDraw/App/DrawViewPartPy.xml
+++ b/src/Mod/TechDraw/App/DrawViewPartPy.xml
@@ -102,6 +102,16 @@
formatGeometricEdge(index, style, weight, color, visible). Returns None.
+
+
+
+ getEdgeByIndex(edgeIndex). Returns Part.TopoShape.
+
+
+
+
+ getVertexByIndex(vertexIndex). Returns Part.TopoShape.
+
diff --git a/src/Mod/TechDraw/App/DrawViewPartPyImp.cpp b/src/Mod/TechDraw/App/DrawViewPartPyImp.cpp
index 1d543c4de3..c42d83673e 100644
--- a/src/Mod/TechDraw/App/DrawViewPartPyImp.cpp
+++ b/src/Mod/TechDraw/App/DrawViewPartPyImp.cpp
@@ -42,6 +42,10 @@
#include
#include
+#include
+#include
+#include
+
#include "DrawViewPart.h"
#include "GeometryObject.h"
#include "Cosmetic.h"
@@ -64,6 +68,7 @@ std::string DrawViewPartPy::representation(void) const
{
return std::string("");
}
+//TODO: gets & sets for geometry
PyObject* DrawViewPartPy::clearCosmeticVertices(PyObject *args)
{
@@ -503,7 +508,33 @@ PyObject* DrawViewPartPy::formatGeometricEdge(PyObject *args)
return Py_None;
}
+//------------------------------------------------------------------------------
+PyObject* DrawViewPartPy::getEdgeByIndex(PyObject *args)
+{
+ int edgeIndex = 0;
+ if (!PyArg_ParseTuple(args, "i", &edgeIndex)) {
+ throw Py::TypeError("expected (edgeIndex)");
+ }
+ DrawViewPart* dvp = getDrawViewPartPtr();
+ TechDraw::BaseGeom* geom = dvp->getGeomByIndex(edgeIndex);
+ TopoDS_Edge outEdge = geom->occEdge;
+ return new Part::TopoShapeEdgePy(new Part::TopoShape(outEdge));
+}
+PyObject* DrawViewPartPy::getVertexByIndex(PyObject *args)
+{
+ int vertexIndex = 0;
+ if (!PyArg_ParseTuple(args, "i", &vertexIndex)) {
+ throw Py::TypeError("expected (vertIndex)");
+ }
+ DrawViewPart* dvp = getDrawViewPartPtr();
+ TechDraw::Vertex* vert = dvp->getProjVertexByIndex(vertexIndex);
+ TopoDS_Vertex outVertex = vert->occVertex;
+ return new Part::TopoShapeVertexPy(new Part::TopoShape(outVertex));
+}
+
+
+//==============================================================================
PyObject *DrawViewPartPy::getCustomAttributes(const char* /*attr*/) const
{
return 0;