@@ -48,7 +48,7 @@ static PyObject* pyLoadObj(PyObject* self, PyObject* args) {
4848
4949 pyshapes = PyDict_New ();
5050 pymaterials = PyDict_New ();
51- pymaterial_indices = PyDict_New ( );
51+ pymaterial_indices = PyList_New ( 0 );
5252 rtndict = PyDict_New ();
5353
5454 attribobj = PyDict_New ();
@@ -124,53 +124,52 @@ static PyObject* pyLoadObj(PyObject* self, PyObject* args) {
124124 PyDict_SetItemString (pyshapes, (*shape).name .c_str (), meshobj);
125125 }
126126
127- long material_index = 0 ;
128127 for (std::vector<tinyobj::material_t >::iterator mat = materials.begin ();
129128 mat != materials.end (); mat++) {
130129 PyObject* matobj = PyDict_New ();
131130 PyObject* unknown_parameter = PyDict_New ();
132131
133132 for (std::map<std::string, std::string>::iterator p =
134- (* mat). unknown_parameter .begin ();
135- p != (* mat). unknown_parameter .end (); ++p) {
133+ mat-> unknown_parameter .begin ();
134+ p != mat-> unknown_parameter .end (); ++p) {
136135 PyDict_SetItemString (unknown_parameter, p->first .c_str (),
137136 PyUnicode_FromString (p->second .c_str ()));
138137 }
139138
140139 PyDict_SetItemString (matobj, " shininess" ,
141- PyFloat_FromDouble ((* mat). shininess ));
142- PyDict_SetItemString (matobj, " ior" , PyFloat_FromDouble ((* mat). ior ));
140+ PyFloat_FromDouble (mat-> shininess ));
141+ PyDict_SetItemString (matobj, " ior" , PyFloat_FromDouble (mat-> ior ));
143142 PyDict_SetItemString (matobj, " dissolve" ,
144- PyFloat_FromDouble ((* mat). dissolve ));
145- PyDict_SetItemString (matobj, " illum" , PyLong_FromLong ((* mat). illum ));
143+ PyFloat_FromDouble (mat-> dissolve ));
144+ PyDict_SetItemString (matobj, " illum" , PyLong_FromLong (mat-> illum ));
146145 PyDict_SetItemString (matobj, " ambient_texname" ,
147- PyUnicode_FromString ((* mat). ambient_texname .c_str ()));
146+ PyUnicode_FromString (mat-> ambient_texname .c_str ()));
148147 PyDict_SetItemString (matobj, " diffuse_texname" ,
149- PyUnicode_FromString ((* mat). diffuse_texname .c_str ()));
148+ PyUnicode_FromString (mat-> diffuse_texname .c_str ()));
150149 PyDict_SetItemString (matobj, " specular_texname" ,
151- PyUnicode_FromString ((* mat). specular_texname .c_str ()));
150+ PyUnicode_FromString (mat-> specular_texname .c_str ()));
152151 PyDict_SetItemString (
153152 matobj, " specular_highlight_texname" ,
154- PyUnicode_FromString ((* mat). specular_highlight_texname .c_str ()));
153+ PyUnicode_FromString (mat-> specular_highlight_texname .c_str ()));
155154 PyDict_SetItemString (matobj, " bump_texname" ,
156- PyUnicode_FromString ((* mat). bump_texname .c_str ()));
155+ PyUnicode_FromString (mat-> bump_texname .c_str ()));
157156 PyDict_SetItemString (
158157 matobj, " displacement_texname" ,
159- PyUnicode_FromString ((* mat). displacement_texname .c_str ()));
158+ PyUnicode_FromString (mat-> displacement_texname .c_str ()));
160159 PyDict_SetItemString (matobj, " alpha_texname" ,
161- PyUnicode_FromString ((* mat). alpha_texname .c_str ()));
162- PyDict_SetItemString (matobj, " ambient" , pyTupleFromfloat3 ((* mat). ambient ));
163- PyDict_SetItemString (matobj, " diffuse" , pyTupleFromfloat3 ((* mat). diffuse ));
160+ PyUnicode_FromString (mat-> alpha_texname .c_str ()));
161+ PyDict_SetItemString (matobj, " ambient" , pyTupleFromfloat3 (mat-> ambient ));
162+ PyDict_SetItemString (matobj, " diffuse" , pyTupleFromfloat3 (mat-> diffuse ));
164163 PyDict_SetItemString (matobj, " specular" ,
165- pyTupleFromfloat3 ((* mat). specular ));
164+ pyTupleFromfloat3 (mat-> specular ));
166165 PyDict_SetItemString (matobj, " transmittance" ,
167- pyTupleFromfloat3 ((* mat). transmittance ));
166+ pyTupleFromfloat3 (mat-> transmittance ));
168167 PyDict_SetItemString (matobj, " emission" ,
169- pyTupleFromfloat3 ((* mat). emission ));
168+ pyTupleFromfloat3 (mat-> emission ));
170169 PyDict_SetItemString (matobj, " unknown_parameter" , unknown_parameter);
171170
172- PyDict_SetItemString (pymaterials, (* mat). name .c_str (), matobj);
173- PyDict_SetItemString (pymaterial_indices, PyLong_FromLong (material_index++), (* mat). name .c_str ());
171+ PyDict_SetItemString (pymaterials, mat-> name .c_str (), matobj);
172+ PyList_Append (pymaterial_indices, PyUnicode_FromString ( mat-> name .c_str () ));
174173 }
175174
176175 PyDict_SetItemString (rtndict, " shapes" , pyshapes);
0 commit comments