diff --git a/src/runner/pythonrunner.cpp b/src/runner/pythonrunner.cpp index f449a7b..5349ee6 100644 --- a/src/runner/pythonrunner.cpp +++ b/src/runner/pythonrunner.cpp @@ -365,35 +365,6 @@ struct std_vector_to_python_list }; -template -struct std_vector_from_python_obj -{ - std_vector_from_python_obj() { - bpy::converter::registry::push_back( - &convertible, - &construct, - bpy::type_id >()); - } - - static void* convertible(PyObject *objPtr) { - if (PyList_Check(objPtr)) return objPtr; - return nullptr; - } - - static void construct(PyObject *objPtr, bpy::converter::rvalue_from_python_stage1_data *data) { - void *storage = ((bpy::converter::rvalue_from_python_storage >*)data)->storage.bytes; - std::vector *result = new (storage) std::vector(); - bpy::list source(bpy::handle<>(bpy::borrowed(objPtr))); - int length = bpy::len(source); - for (int i = 0; i < length; ++i) { - result->push_back(bpy::extract(source[i])); - } - - data->convertible = storage; - } -}; - - template struct QFlags_from_python_obj { @@ -419,36 +390,6 @@ struct QFlags_from_python_obj }; -template -struct stdset_from_python_list -{ - stdset_from_python_list() { - bpy::converter::registry::push_back( - &convertible, - &construct, - bpy::type_id >()); - } - - static void* convertible(PyObject *objPtr) { - if (PyList_Check(objPtr)) return objPtr; - return nullptr; - } - - static void construct(PyObject *objPtr, bpy::converter::rvalue_from_python_stage1_data *data) { - void *storage = ((bpy::converter::rvalue_from_python_storage >*)data)->storage.bytes; - std::set *result = new (storage) std::set(); - - bpy::list source(bpy::handle<>(bpy::borrowed(objPtr))); - int length = bpy::len(source); - for (int i = 0; i < length; ++i) { - result->insert(bpy::extract(source[i])); - } - - data->convertible = storage; - } -}; - - struct IModRepositoryBridge_to_python { static PyObject *convert(IModRepositoryBridge *bridge) @@ -985,7 +926,7 @@ BOOST_PYTHON_MODULE(mobase) ; } - utils::register_map(); + utils::register_associative_container(); bpy::register_variant>(); // IFileTree scope: @@ -1393,12 +1334,9 @@ BOOST_PYTHON_MODULE(mobase) QMap_converters(); QMap_converters(); - std_vector_from_python_obj(); - std_vector_from_python_obj(); - bpy::to_python_converter, - std_vector_to_python_list>(); - - stdset_from_python_list(); + utils::register_sequence_container>(); + utils::register_sequence_container>(); + utils::register_set_container>(); registerGameFeaturesPythonConverters(); }