FEM: mesh view provider, expose some C++ methods to Python

This commit is contained in:
Bernd Hahnebach
2020-01-06 01:05:32 +01:00
parent 809042ee2c
commit 11400c91e7
2 changed files with 53 additions and 1 deletions

View File

@@ -31,7 +31,6 @@ std::string ViewProviderFemMeshPy::representation(void) const
}
PyObject* ViewProviderFemMeshPy::applyDisplacement(PyObject * args)
{
double factor;
@@ -43,6 +42,7 @@ PyObject* ViewProviderFemMeshPy::applyDisplacement(PyObject * args)
Py_Return;
}
App::Color calcColor(double value,double min, double max)
{
if (max < 0) max = 0;
@@ -106,6 +106,15 @@ PyObject* ViewProviderFemMeshPy::setNodeColorByScalars(PyObject *args)
}
PyObject* ViewProviderFemMeshPy::resetNodeColor(PyObject *args)
{
if (!PyArg_ParseTuple(args, ""))
return 0;
this->getViewProviderFemMeshPtr()->resetColorByNodeId();
Py_Return;
}
PyObject* ViewProviderFemMeshPy::setNodeDisplacementByVectors(PyObject *args)
{
PyObject *node_ids_py;
@@ -134,12 +143,23 @@ PyObject* ViewProviderFemMeshPy::setNodeDisplacementByVectors(PyObject *args)
Py_Return;
}
PyObject* ViewProviderFemMeshPy::resetNodeDisplacement(PyObject *args)
{
if (!PyArg_ParseTuple(args, ""))
return 0;
this->getViewProviderFemMeshPtr()->resetDisplacementByNodeId();
Py_Return;
}
Py::Dict ViewProviderFemMeshPy::getNodeColor(void) const
{
//return Py::List();
throw Py::AttributeError("Not yet implemented");
}
void ViewProviderFemMeshPy::setNodeColor(Py::Dict arg)
{
long size = arg.size();
@@ -173,12 +193,14 @@ void ViewProviderFemMeshPy::setNodeColor(Py::Dict arg)
}
}
Py::Dict ViewProviderFemMeshPy::getElementColor(void) const
{
//return Py::List();
throw Py::AttributeError("Not yet implemented");
}
void ViewProviderFemMeshPy::setElementColor(Py::Dict arg)
{
if(arg.size() == 0)
@@ -195,12 +217,14 @@ void ViewProviderFemMeshPy::setElementColor(Py::Dict arg)
}
}
Py::Dict ViewProviderFemMeshPy::getNodeDisplacement(void) const
{
//return Py::Dict();
throw Py::AttributeError("Not yet implemented");
}
void ViewProviderFemMeshPy::setNodeDisplacement(Py::Dict arg)
{
if(arg.size() == 0)
@@ -221,6 +245,7 @@ void ViewProviderFemMeshPy::setNodeDisplacement(Py::Dict arg)
}
}
Py::List ViewProviderFemMeshPy::getHighlightedNodes(void) const
{
Py::List list;
@@ -232,6 +257,7 @@ Py::List ViewProviderFemMeshPy::getHighlightedNodes(void) const
return list;
}
void ViewProviderFemMeshPy::setHighlightedNodes(Py::List arg)
{
ViewProviderFemMesh* vp = this->getViewProviderFemMeshPtr();
@@ -249,6 +275,16 @@ void ViewProviderFemMeshPy::setHighlightedNodes(Py::List arg)
this->getViewProviderFemMeshPtr()->setHighlightNodes(res);
}
PyObject* ViewProviderFemMeshPy::resetHighlightedNodes(PyObject *args)
{
if (!PyArg_ParseTuple(args, ""))
return 0;
this->getViewProviderFemMeshPtr()->resetHighlightNodes();
Py_Return;
}
Py::List ViewProviderFemMeshPy::getVisibleElementFaces(void) const
{
const std::vector<unsigned long> & visElmFc = this->getViewProviderFemMeshPtr()->getVisibleElementFaces();
@@ -290,6 +326,7 @@ PyObject *ViewProviderFemMeshPy::getCustomAttributes(const char* /*attr*/) const
return 0;
}
int ViewProviderFemMeshPy::setCustomAttributes(const char* /*attr*/, PyObject* /*obj*/)
{
return 0;