aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSyoyo Fujita <syoyo@lighttransport.com>2017-10-08 15:09:07 +0900
committerGitHub <noreply@github.com>2017-10-08 15:09:07 +0900
commit5cd30b70e0a8d1d948aaa4c663f9adfcc018359b (patch)
tree68ef12350f21bd8952307da3332b835d1cbcde76
parent27bdd547f004f71fce96be60553891a014660e67 (diff)
parenteb1f395101468a12a968eab1ac2a32b61f852c6c (diff)
downloadtinyobjloader-5cd30b70e0a8d1d948aaa4c663f9adfcc018359b.tar.gz
Merge pull request #142 from Ododo/master
[Python] Fix mapping for #131 and compilation error #139 #132 (related)
-rw-r--r--python/main.cpp43
1 files changed, 21 insertions, 22 deletions
diff --git a/python/main.cpp b/python/main.cpp
index 9e266c1..4f1d0e0 100644
--- a/python/main.cpp
+++ b/python/main.cpp
@@ -48,7 +48,7 @@ static PyObject* pyLoadObj(PyObject* self, PyObject* args) {
pyshapes = PyDict_New();
pymaterials = PyDict_New();
- pymaterial_indices = PyDict_New();
+ pymaterial_indices = PyList_New(0);
rtndict = PyDict_New();
attribobj = PyDict_New();
@@ -124,53 +124,52 @@ static PyObject* pyLoadObj(PyObject* self, PyObject* args) {
PyDict_SetItemString(pyshapes, (*shape).name.c_str(), meshobj);
}
- long material_index = 0;
for (std::vector<tinyobj::material_t>::iterator mat = materials.begin();
mat != materials.end(); mat++) {
PyObject* matobj = PyDict_New();
PyObject* unknown_parameter = PyDict_New();
for (std::map<std::string, std::string>::iterator p =
- (*mat).unknown_parameter.begin();
- p != (*mat).unknown_parameter.end(); ++p) {
+ mat->unknown_parameter.begin();
+ p != mat->unknown_parameter.end(); ++p) {
PyDict_SetItemString(unknown_parameter, p->first.c_str(),
PyUnicode_FromString(p->second.c_str()));
}
PyDict_SetItemString(matobj, "shininess",
- PyFloat_FromDouble((*mat).shininess));
- PyDict_SetItemString(matobj, "ior", PyFloat_FromDouble((*mat).ior));
+ PyFloat_FromDouble(mat->shininess));
+ PyDict_SetItemString(matobj, "ior", PyFloat_FromDouble(mat->ior));
PyDict_SetItemString(matobj, "dissolve",
- PyFloat_FromDouble((*mat).dissolve));
- PyDict_SetItemString(matobj, "illum", PyLong_FromLong((*mat).illum));
+ PyFloat_FromDouble(mat->dissolve));
+ PyDict_SetItemString(matobj, "illum", PyLong_FromLong(mat->illum));
PyDict_SetItemString(matobj, "ambient_texname",
- PyUnicode_FromString((*mat).ambient_texname.c_str()));
+ PyUnicode_FromString(mat->ambient_texname.c_str()));
PyDict_SetItemString(matobj, "diffuse_texname",
- PyUnicode_FromString((*mat).diffuse_texname.c_str()));
+ PyUnicode_FromString(mat->diffuse_texname.c_str()));
PyDict_SetItemString(matobj, "specular_texname",
- PyUnicode_FromString((*mat).specular_texname.c_str()));
+ PyUnicode_FromString(mat->specular_texname.c_str()));
PyDict_SetItemString(
matobj, "specular_highlight_texname",
- PyUnicode_FromString((*mat).specular_highlight_texname.c_str()));
+ PyUnicode_FromString(mat->specular_highlight_texname.c_str()));
PyDict_SetItemString(matobj, "bump_texname",
- PyUnicode_FromString((*mat).bump_texname.c_str()));
+ PyUnicode_FromString(mat->bump_texname.c_str()));
PyDict_SetItemString(
matobj, "displacement_texname",
- PyUnicode_FromString((*mat).displacement_texname.c_str()));
+ PyUnicode_FromString(mat->displacement_texname.c_str()));
PyDict_SetItemString(matobj, "alpha_texname",
- PyUnicode_FromString((*mat).alpha_texname.c_str()));
- PyDict_SetItemString(matobj, "ambient", pyTupleFromfloat3((*mat).ambient));
- PyDict_SetItemString(matobj, "diffuse", pyTupleFromfloat3((*mat).diffuse));
+ PyUnicode_FromString(mat->alpha_texname.c_str()));
+ PyDict_SetItemString(matobj, "ambient", pyTupleFromfloat3(mat->ambient));
+ PyDict_SetItemString(matobj, "diffuse", pyTupleFromfloat3(mat->diffuse));
PyDict_SetItemString(matobj, "specular",
- pyTupleFromfloat3((*mat).specular));
+ pyTupleFromfloat3(mat->specular));
PyDict_SetItemString(matobj, "transmittance",
- pyTupleFromfloat3((*mat).transmittance));
+ pyTupleFromfloat3(mat->transmittance));
PyDict_SetItemString(matobj, "emission",
- pyTupleFromfloat3((*mat).emission));
+ pyTupleFromfloat3(mat->emission));
PyDict_SetItemString(matobj, "unknown_parameter", unknown_parameter);
- PyDict_SetItemString(pymaterials, (*mat).name.c_str(), matobj);
- PyDict_SetItemString(pymaterial_indices, PyLong_FromLong(material_index++), (*mat).name.c_str());
+ PyDict_SetItemString(pymaterials, mat->name.c_str(), matobj);
+ PyList_Append(pymaterial_indices, PyUnicode_FromString(mat->name.c_str()));
}
PyDict_SetItemString(rtndict, "shapes", pyshapes);