From 722b6ace909df6fcdbc68aebecffb294caef1d13 Mon Sep 17 00:00:00 2001 From: Paolo Cignoni Date: Sun, 9 Sep 2018 09:28:21 +0200 Subject: [PATCH] Added in meshlab support for opening fbx files --- src/meshlabplugins/io_base/baseio.cpp | 19 +++++++++++++++++-- src/meshlabplugins/io_base/io_base.pro | 6 +++++- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/meshlabplugins/io_base/baseio.cpp b/src/meshlabplugins/io_base/baseio.cpp index 44645414f..9b58ddb41 100644 --- a/src/meshlabplugins/io_base/baseio.cpp +++ b/src/meshlabplugins/io_base/baseio.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -249,8 +250,21 @@ bool BaseMeshIOPlugin::open(const QString &formatName, const QString &fileName, return false; } } - else - { + else if (formatName.toUpper() == tr("FBX")) + { + m.Enable(tri::io::Mask::IOM_WEDGTEXCOORD); + + int result = tri::io::ImporterFBX::Open(m.cm, filename.c_str(),cb); + if(m.cm.textures.empty()) + m.clearDataMask(tri::io::Mask::IOM_WEDGTEXCOORD); + + if (result != 0) + { + errorMessage = errorMsgFormat.arg(fileName, vcg::tri::io::ImporterFBX::ErrorMsg(result)); + return false; + } + }else + { assert(0); // Unknown File type return false; } @@ -421,6 +435,7 @@ QList BaseMeshIOPlugin::importFormats() const formatList << Format("Object File Format", tr("OFF")); formatList << Format("PTX File Format", tr("PTX")); formatList << Format("VCG Dump File Format", tr("VMI")); + formatList << Format("FBX Autodesk Interchange Format", tr("FBX")); return formatList; } diff --git a/src/meshlabplugins/io_base/io_base.pro b/src/meshlabplugins/io_base/io_base.pro index 0b4721430..0cfc26b6e 100644 --- a/src/meshlabplugins/io_base/io_base.pro +++ b/src/meshlabplugins/io_base/io_base.pro @@ -6,6 +6,7 @@ HEADERS += baseio.h \ $$VCGDIR/wrap/io_trimesh/import_off.h \ $$VCGDIR/wrap/io_trimesh/import_ptx.h \ $$VCGDIR/wrap/io_trimesh/import_stl.h \ + $$VCGDIR/wrap/io_trimesh/import_fbx.h \ $$VCGDIR/wrap/io_trimesh/export_ply.h \ $$VCGDIR/wrap/io_trimesh/export_obj.h \ $$VCGDIR/wrap/io_trimesh/export_off.h \ @@ -13,7 +14,10 @@ HEADERS += baseio.h \ $$VCGDIR/wrap/io_trimesh/io_material.h SOURCES += baseio.cpp \ - $$VCGDIR//wrap/ply/plylib.cpp\ + $$VCGDIR//wrap/ply/plylib.cpp\ + $$VCGDIR//wrap/openfbx/src/ofbx.cpp \ + $$VCGDIR//wrap/openfbx/src/miniz.c TARGET = io_base +CONFIG += c++14