From d12afc4cabed5dc1dd965a92057492112146b904 Mon Sep 17 00:00:00 2001 From: Mansard <nmansard@laas.fr> Date: Tue, 25 Jan 2011 17:58:35 +0100 Subject: [PATCH] Enable conversion from int to float and double in argument of bound functions. --- src/entity-py.cc | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/entity-py.cc b/src/entity-py.cc index a0895a3..7c009db 100644 --- a/src/entity-py.cc +++ b/src/entity-py.cc @@ -227,20 +227,28 @@ namespace dynamicgraph { return Value(ivalue); break; case (Value::FLOAT) : - if (!PyFloat_Check(pyObject)) { + if (PyFloat_Check(pyObject)) { + fvalue = (float)PyFloat_AsDouble(pyObject); + return Value(fvalue); + } else if (PyInt_Check(pyObject)) { + fvalue = (float)PyInt_AS_LONG(pyObject); + return Value(fvalue); + } else { throw ExceptionFactory(ExceptionFactory::GENERIC, "float"); } - fvalue = (float)PyFloat_AsDouble(pyObject); - return Value(fvalue); break; case (Value::DOUBLE) : - if (!PyFloat_Check(pyObject)) { + if (PyFloat_Check(pyObject)) { + dvalue = PyFloat_AsDouble(pyObject); + return Value(dvalue); + } else if (PyInt_Check(pyObject)) { + dvalue = 0.0+PyInt_AS_LONG(pyObject); + return Value(dvalue); + } else { throw ExceptionFactory(ExceptionFactory::GENERIC, - "float"); + "double"); } - dvalue = PyFloat_AsDouble(pyObject); - return Value(dvalue); break; case (Value::STRING) : if (!PyString_Check(pyObject)) { -- GitLab