PyObject* BezierSurfacePy::insertPoleColBefore(PyObject *args) { int vindex; PyObject* obj; PyObject* obj2=0; if (!PyArg_ParseTuple(args, "iO|O",&vindex,&obj,&obj2)) return 0; try { Py::Sequence list(obj); TColgp_Array1OfPnt poles(1, list.size()); int index=1; for (Py::Sequence::iterator it = list.begin(); it != list.end(); ++it) { Py::Vector p(*it); Base::Vector3d v = p.toVector(); poles(index++) = gp_Pnt(v.x,v.y,v.z); } Handle_Geom_BezierSurface surf = Handle_Geom_BezierSurface::DownCast (getGeometryPtr()->handle()); if (obj2 == 0) { surf->InsertPoleColBefore(vindex, poles); } else { Py::Sequence list(obj2); TColStd_Array1OfReal weights(1, list.size()); int index=1; for (Py::Sequence::iterator it = list.begin(); it != list.end(); ++it) { weights(index++) = (double)Py::Float(*it); } surf->InsertPoleColBefore(vindex, poles, weights); } Py_Return; } catch (Standard_Failure) { Handle_Standard_Failure e = Standard_Failure::Caught(); PyErr_SetString(PartExceptionOCCError, e->GetMessageString()); return 0; } }