diff --git a/src/Mod/TechDraw/App/DrawViewPartPy.xml b/src/Mod/TechDraw/App/DrawViewPartPy.xml
index f6921ae78a..3abc3c44f4 100644
--- a/src/Mod/TechDraw/App/DrawViewPartPy.xml
+++ b/src/Mod/TechDraw/App/DrawViewPartPy.xml
@@ -13,6 +13,16 @@
Feature for creating and manipulating Technical Drawing Part Views
+
+
+ getVisibleEdges() - get the visible edges in the View as Part::TopoShapeEdges
+
+
+
+
+ getHiddenEdges() - get the hidden edges in the View as Part::TopoShapeEdges
+
+
makeCosmeticVertex(p1) - add a CosmeticVertex at p1 (View coordinates). Returns index of created vertex.
diff --git a/src/Mod/TechDraw/App/DrawViewPartPyImp.cpp b/src/Mod/TechDraw/App/DrawViewPartPyImp.cpp
index 403fd0fbfe..0f35ba67d6 100644
--- a/src/Mod/TechDraw/App/DrawViewPartPyImp.cpp
+++ b/src/Mod/TechDraw/App/DrawViewPartPyImp.cpp
@@ -70,6 +70,38 @@ std::string DrawViewPartPy::representation(void) const
}
//TODO: gets & sets for geometry
+PyObject* DrawViewPartPy::getVisibleEdges(PyObject *args)
+{
+ (void) args;
+ DrawViewPart* dvp = getDrawViewPartPtr();
+ PyObject* pEdgeList = PyList_New(0);
+ std::vector geoms = dvp->getEdgeGeometry();
+ for (auto& g: geoms) {
+ if (g->hlrVisible) {
+ PyObject* pEdge = new Part::TopoShapeEdgePy(new Part::TopoShape(g->occEdge));
+ PyList_Append(pEdgeList, pEdge);
+ }
+ }
+
+ return pEdgeList;
+}
+
+PyObject* DrawViewPartPy::getHiddenEdges(PyObject *args)
+{
+ (void) args;
+ DrawViewPart* dvp = getDrawViewPartPtr();
+ PyObject* pEdgeList = PyList_New(0);
+ std::vector geoms = dvp->getEdgeGeometry();
+ for (auto& g: geoms) {
+ if (!g->hlrVisible) {
+ PyObject* pEdge = new Part::TopoShapeEdgePy(new Part::TopoShape(g->occEdge));
+ PyList_Append(pEdgeList, pEdge);
+ }
+ }
+
+ return pEdgeList;
+}
+
PyObject* DrawViewPartPy::clearCosmeticVertices(PyObject *args)
{
(void) args;
@@ -238,7 +270,7 @@ PyObject* DrawViewPartPy::makeCosmeticCircleArc(PyObject *args)
// right result, but ugly:
// Qt angles are cw, OCC angles are CCW
// Qt -y is up, OCC -y is down
-
+
TopoDS_Edge edge = aMakeEdge.Edge();
int idx = dvp->addCosmeticEdge(edge);
TechDraw::CosmeticEdge* ce = dvp->getCosmeticEdgeByIndex(idx);
@@ -314,7 +346,7 @@ PyObject* DrawViewPartPy::getCosmeticEdgeByGeom(PyObject *args)
throw Py::TypeError("expected (index)");
}
DrawViewPart* dvp = getDrawViewPartPtr();
-
+
TechDraw::BaseGeom* bg = dvp->getGeomByIndex(idx);
if (bg == nullptr) {
Base::Console().Error("DVPPI::getCEbyGeom - geom: %d not found\n",idx);
@@ -502,7 +534,7 @@ PyObject* DrawViewPartPy::formatGeometricEdge(PyObject *args)
visible);
TechDraw::GeomFormat* newGF = new TechDraw::GeomFormat(idx,
fmt);
-// int idx =
+// int idx =
dvp->addGeomFormat(newGF);
}
return Py_None;