PyObject* FemMeshPy::addNode(PyObject *args) { double x,y,z; int i = -1; if (PyArg_ParseTuple(args, "ddd",&x,&y,&z)){ try { SMESH_Mesh* mesh = getFemMeshPtr()->getSMesh(); SMESHDS_Mesh* meshDS = mesh->GetMeshDS(); SMDS_MeshNode* node = meshDS->AddNode(x,y,z); if (!node) throw std::runtime_error("Failed to add node"); return Py::new_reference_to(Py::Int(node->GetID())); } catch (const std::exception& e) { PyErr_SetString(Base::BaseExceptionFreeCADError, e.what()); return 0; } } PyErr_Clear(); if (PyArg_ParseTuple(args, "dddi",&x,&y,&z,&i)){ try { SMESH_Mesh* mesh = getFemMeshPtr()->getSMesh(); SMESHDS_Mesh* meshDS = mesh->GetMeshDS(); SMDS_MeshNode* node = meshDS->AddNodeWithID(x,y,z,i); if (!node) throw std::runtime_error("Failed to add node"); return Py::new_reference_to(Py::Int(node->GetID())); } catch (const std::exception& e) { PyErr_SetString(Base::BaseExceptionFreeCADError, e.what()); return 0; } } PyErr_SetString(PyExc_TypeError, "addNode() accepts:\n" "-- addNode(x,y,z)\n" "-- addNode(x,y,z,ElemId)\n"); return 0; }
PyObject* FemMeshPy::addNode(PyObject *args) { double x,y,z; if (!PyArg_ParseTuple(args, "ddd",&x,&y,&z)) return 0; try { SMESH_Mesh* mesh = getFemMeshPtr()->getSMesh(); SMESHDS_Mesh* meshDS = mesh->GetMeshDS(); SMDS_MeshNode* node = meshDS->AddNode(x,y,z); if (!node) throw std::runtime_error("Failed to add node"); return Py::new_reference_to(Py::Int(node->GetID())); } catch (const std::exception& e) { PyErr_SetString(PyExc_Exception, e.what()); return 0; } }