From 016848f102fabb3dc2a0c49e1bcbfb484325768b Mon Sep 17 00:00:00 2001 From: Alexander Dielen Date: Thu, 5 Nov 2015 18:20:02 +0100 Subject: [PATCH] Exposed the progressive mesh module. --- src/Python/Decimater.hh | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/Python/Decimater.hh b/src/Python/Decimater.hh index c9597d1c..5eb18e61 100644 --- a/src/Python/Decimater.hh +++ b/src/Python/Decimater.hh @@ -32,6 +32,16 @@ void expose_module_handle(const char *_name) { ; } +template +list infolist(Module& _self) { + const typename Module::InfoList& infos = _self.infolist(); + list res; + for (size_t i = 0; i < infos.size(); ++i) { + res.append(infos[i]); + } + return res; +} + template void expose_decimater(const char *_name) { @@ -59,6 +69,9 @@ void expose_decimater(const char *_name) { typedef Decimater::BaseDecimaterT BaseDecimater; typedef Decimater::DecimaterT Decimater; + typedef typename ModProgMesh::Info Info; + typedef std::vector InfoList; + bool (BaseDecimater::*add1)(ModAspectRatioHandle&) = &Decimater::add; bool (BaseDecimater::*add2)(ModEdgeLengthHandle&) = &Decimater::add; bool (BaseDecimater::*add3)(ModHausdorffHandle&) = &Decimater::add; @@ -228,7 +241,23 @@ void expose_decimater(const char *_name) { // ModProgMesh // ---------------------------------------- - // TODO + class_("Info", no_init) + .def_readwrite("v0", &Info::v0) + .def_readwrite("v1", &Info::v1) + .def_readwrite("vl", &Info::vl) + .def_readwrite("vr", &Info::vr) + ; + + snprintf(buffer, sizeof buffer, "%s%s", _name, "ModProgMesh"); + + class_, boost::noncopyable>(buffer, init()) + .def("pmi", &infolist) + .def("infolist", &infolist) + .def("write", &ModProgMesh::write) + ; + + snprintf(buffer, sizeof buffer, "%s%s", _name, "ModProgMeshHandle"); + expose_module_handle(buffer); // ModQuadric // ----------------------------------------