Material: Add mapping and sequence protocols to MaterialPy object
This commit is contained in:
committed by
Yorik van Havre
parent
90ed7ea793
commit
864fcf996a
@@ -553,3 +553,35 @@ PyObject* MaterialPy::setAppearanceValue(PyObject* args)
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
|
||||
PyObject* MaterialPy::keys()
|
||||
{
|
||||
return Py::new_reference_to(this->getProperties().keys());
|
||||
}
|
||||
|
||||
PyObject* MaterialPy::values()
|
||||
{
|
||||
return Py::new_reference_to(this->getProperties().values());
|
||||
}
|
||||
|
||||
Py_ssize_t MaterialPy::sequence_length(PyObject *self)
|
||||
{
|
||||
return static_cast<MaterialPy*>(self)->getProperties().size();
|
||||
}
|
||||
|
||||
PyObject* MaterialPy::sequence_item(PyObject* self, Py_ssize_t item)
|
||||
{
|
||||
Py::List keys = static_cast<MaterialPy*>(self)->getProperties().keys();
|
||||
return Py::new_reference_to(keys.getItem(item));
|
||||
}
|
||||
|
||||
int MaterialPy::sequence_contains(PyObject* self, PyObject* key)
|
||||
{
|
||||
return PyDict_Contains(static_cast<MaterialPy*>(self)->getProperties().ptr(), key);
|
||||
}
|
||||
|
||||
PyObject* MaterialPy::mapping_subscript(PyObject* self, PyObject* key)
|
||||
{
|
||||
Py::Dict dict = static_cast<MaterialPy*>(self)->getProperties();
|
||||
return Py::new_reference_to(dict.getItem(Py::Object(key)));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user