43#include <pybind11/pybind11.h>
44#include <pybind11/embed.h>
50#include <QCoreApplication>
52#include <OpenFlipper/BasePlugin/PythonFunctions.hh>
53#include <OpenFlipper/PythonInterpreter/PythonTypeConversions.hh>
57namespace py = pybind11;
61PYBIND11_EMBEDDED_MODULE(FileOFF, m) {
63 QObject* pluginPointer = getPluginPointer(
"FileOFF");
66 std::cerr <<
"Error Getting plugin pointer for Plugin-FileOFF" << std::endl;
70 FileOFFPlugin* plugin = qobject_cast<FileOFFPlugin*>(pluginPointer);
73 std::cerr <<
"Error converting plugin pointer for Plugin-FileOFF" << std::endl;
79 py::class_< FileOFFPlugin,std::unique_ptr<FileOFFPlugin, py::nodelete> > off(m,
"FileOFF");
84 off.def(py::init([plugin]() {
return plugin; }));
89 QCoreApplication::translate(
"PythonDocFileOFF",
"Loads an object and returns its id").toLatin1().data(),
90 py::arg(QCoreApplication::translate(
"PythonDocFileOFF",
"Filename").toLatin1().data()) );
93 QCoreApplication::translate(
"PythonDocFileOFF",
"Loads an object as a given datatype and returns its id").toLatin1().data(),
94 py::arg(QCoreApplication::translate(
"PythonDocFileOFF",
"Filename").toLatin1().data()),
95 py::arg(QCoreApplication::translate(
"PythonDocFileOFF",
"Data type (\"PolyMesh\" or \"TriangleMesh\")").toLatin1().data()));
98 off.def(
"saveObject", &FileOFFPlugin::saveObject,
99 QCoreApplication::translate(
"PythonDocFileOFF",
"saves a given object to a file").toLatin1().data(),
100 py::arg(QCoreApplication::translate(
"PythonDocFileOFF",
"Object id to save").toLatin1().data()),
101 py::arg(QCoreApplication::translate(
"PythonDocFileOFF",
"Filename").toLatin1().data()) );
int loadObject(QString _filename)
Loads Object and converts it to a triangle mesh if possible.