@@ -13,11 +13,15 @@ PYBIND11_MODULE(tinyobj, tobj_module)
1313 tobj_module.doc () = " Python bindings for TinyObjLoader." ;
1414
1515 // register struct
16+ py::class_<ObjReaderConfig>(tobj_module, " ObjReaderConfig" )
17+ .def (py::init<>())
18+ .def_readwrite (" triangulate" , &ObjReaderConfig::triangulate);
19+
1620 // py::init<>() for default constructor
1721 py::class_<ObjReader>(tobj_module, " ObjReader" )
1822 .def (py::init<>())
19- .def (" ParseFromFile" , &ObjReader::ParseFromFile)
20- .def (" ParseFromString" , &ObjReader::ParseFromString)
23+ .def (" ParseFromFile" , &ObjReader::ParseFromFile, py::arg ( " filename " ), py::arg ( " option " ) = ObjReaderConfig () )
24+ .def (" ParseFromString" , &ObjReader::ParseFromString, py::arg ( " obj_text " ), py::arg ( " mtl_text " ), py::arg ( " option " ) = ObjReaderConfig () )
2125 .def (" Valid" , &ObjReader::Valid)
2226 .def (" GetAttrib" , &ObjReader::GetAttrib)
2327 .def (" GetShapes" , &ObjReader::GetShapes)
@@ -31,16 +35,16 @@ PYBIND11_MODULE(tinyobj, tobj_module)
3135
3236 py::class_<shape_t >(tobj_module, " shape_t" )
3337 .def (py::init<>())
34- .def_readonly (" name" , &shape_t ::name)
35- .def_readonly (" mesh" , &shape_t ::mesh)
36- .def_readonly (" lines" , &shape_t ::lines)
37- .def_readonly (" points" , &shape_t ::points);
38+ .def_readwrite (" name" , &shape_t ::name)
39+ .def_readwrite (" mesh" , &shape_t ::mesh)
40+ .def_readwrite (" lines" , &shape_t ::lines)
41+ .def_readwrite (" points" , &shape_t ::points);
3842
3943 py::class_<index_t >(tobj_module, " index_t" )
4044 .def (py::init<>())
41- .def_readonly (" vertex_index" , &index_t ::vertex_index)
42- .def_readonly (" normal_index" , &index_t ::normal_index)
43- .def_readonly (" texcoord_index" , &index_t ::texcoord_index)
45+ .def_readwrite (" vertex_index" , &index_t ::vertex_index)
46+ .def_readwrite (" normal_index" , &index_t ::normal_index)
47+ .def_readwrite (" texcoord_index" , &index_t ::texcoord_index)
4448 ;
4549
4650 // TODO(syoyo): write more bindings
@@ -57,8 +61,5 @@ PYBIND11_MODULE(tinyobj, tobj_module)
5761 py::class_<points_t >(tobj_module, " points_t" )
5862 .def (py::init<>());
5963
60- py::class_<ObjReaderConfig>(tobj_module, " ObjReaderConfig" )
61- .def (py::init<>());
62-
6364}
6465
0 commit comments