From 7ca8d10a77e7da12ef3de6e2161647cb80deb32e Mon Sep 17 00:00:00 2001 From: alemuntoni Date: Fri, 18 Sep 2020 12:54:49 +0200 Subject: [PATCH] io_plugin_interface.h, fix filter_trioptimize --- src/common/CMakeLists.txt | 1 + src/common/common.pro | 1 + src/common/interfaces.h | 76 ------------ src/common/interfaces/io_plugin_interface.h | 112 ++++++++++++++++++ src/common/pluginmanager.cpp | 14 +-- src/common/pluginmanager.h | 7 +- src/meshlab/mainwindow.h | 2 +- src/meshlab/mainwindow_RunTime.cpp | 8 +- src/meshlab/plugindialog.cpp | 13 +- .../filter_ssynth/filter_ssynth.cpp | 10 +- .../filter_ssynth/filter_ssynth.h | 4 +- .../filter_trioptimize/filter_trioptimize.cpp | 2 +- .../filter_trioptimize/filter_trioptimize.h | 2 +- src/meshlabplugins/io_3ds/import_3ds.h | 6 +- src/meshlabplugins/io_3ds/meshio.cpp | 6 +- src/meshlabplugins/io_3ds/meshio.h | 6 +- src/meshlabplugins/io_base/baseio.cpp | 5 +- src/meshlabplugins/io_base/baseio.h | 9 +- src/meshlabplugins/io_bre/io_bre.cpp | 4 +- src/meshlabplugins/io_bre/io_bre.h | 9 +- src/meshlabplugins/io_collada/io_collada.cpp | 6 +- src/meshlabplugins/io_collada/io_collada.h | 7 +- src/meshlabplugins/io_ctm/io_ctm.cpp | 4 +- src/meshlabplugins/io_ctm/io_ctm.h | 7 +- src/meshlabplugins/io_expe/io_expe.cpp | 4 +- src/meshlabplugins/io_expe/io_expe.h | 7 +- src/meshlabplugins/io_json/io_json.cpp | 6 +- src/meshlabplugins/io_json/io_json.h | 7 +- src/meshlabplugins/io_pdb/io_pdb.cpp | 4 +- src/meshlabplugins/io_pdb/io_pdb.h | 8 +- src/meshlabplugins/io_tri/io_tri.cpp | 4 +- src/meshlabplugins/io_tri/io_tri.h | 7 +- src/meshlabplugins/io_txt/io_txt.cpp | 4 +- src/meshlabplugins/io_txt/io_txt.h | 7 +- src/meshlabplugins/io_u3d/io_u3d.cpp | 6 +- src/meshlabplugins/io_u3d/io_u3d.h | 7 +- src/meshlabplugins/io_x3d/io_x3d.cpp | 4 +- src/meshlabplugins/io_x3d/io_x3d.h | 7 +- src/meshlabserver/mainserver.cpp | 10 +- vcglib | 2 +- 40 files changed, 236 insertions(+), 179 deletions(-) create mode 100644 src/common/interfaces/io_plugin_interface.h diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index a653a9e14..b896aa6b5 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -35,6 +35,7 @@ set(HEADERS filter_parameter/value.h interfaces/mainwindow_interface.h interfaces/plugin_interface.h + interfaces/io_plugin_interface.h GLExtensionsManager.h GLLogStream.h filterscript.h diff --git a/src/common/common.pro b/src/common/common.pro index 9896ed7f7..3e5ed260e 100644 --- a/src/common/common.pro +++ b/src/common/common.pro @@ -48,6 +48,7 @@ HEADERS += \ filterscript.h \ GLLogStream.h \ interfaces.h \ + interfaces/io_plugin_interface.h \ interfaces/mainwindow_interface.h \ interfaces/plugin_interface.h \ ml_mesh_type.h \ diff --git a/src/common/interfaces.h b/src/common/interfaces.h index b980f6461..3ff978cca 100644 --- a/src/common/interfaces.h +++ b/src/common/interfaces.h @@ -52,80 +52,6 @@ class GLAreaReg; class MeshModel; -/** \brief The MeshIOInterface is the base class for all the single mesh loading plugins. -*/ -class MeshIOInterface : public PluginInterface -{ -public: - class Format - { - public: - Format(QString description, QString ex) : description(description) { extensions << ex; } - QString description; - QStringList extensions; - }; - - MeshIOInterface() : PluginInterface() { } - virtual ~MeshIOInterface() {} - - virtual QList importFormats() const = 0; - virtual QList exportFormats() const = 0; - - // This function is called to initialize the list of additional parameters that a OPENING filter could require - // it is called by the framework BEFORE the actual mesh loading to perform to determine how parse the input file - // The instanced parameters are then passed to the open at the loading time. - // Typical example of use to decide what subportion of a mesh you have to load. - // If you do not need any additional processing simply do not override this and ignore the parameterSet in the open - virtual void initPreOpenParameter(const QString &/*format*/, const QString &/*fileName*/, RichParameterList & /*par*/) {} - - // This function is called to initialize the list of additional parameters that a OPENING filter could require - // it is called by the framework AFTER the mesh is already loaded to perform more or less standard processing on the mesh. - // typical example: unifying vertices in stl models. - // If you do not need any additional processing do nothing. - virtual void initOpenParameter(const QString &/*format*/, MeshModel &/*m*/, RichParameterList & /*par*/) {} - - // This is the corresponding function that is called after the mesh is loaded with the initialized parameters - virtual void applyOpenParameter(const QString &/*format*/, MeshModel &/*m*/, const RichParameterList &/*par*/) {} - - // This function is called to initialize the list of additional parameters that a SAVING filter could require - // it is called by the framework after the mesh is loaded to perform more or less standard processing on the mesh. - // typical example: ascii or binary format for ply or stl - // If you do not need any additional parameter simply do nothing. - virtual void initSaveParameter(const QString &/*format*/, MeshModel &/*m*/, RichParameterList & /*par*/) {} - - - virtual void GetExportMaskCapability(const QString &format, int &capability, int &defaultBits) const = 0; - - /// callback used to actually load a mesh from a file - virtual bool open( - const QString &format, /// the extension of the format e.g. "PLY" - const QString &fileName, /// The name of the file to be opened - MeshModel &m, /// The mesh that is filled with the file content - int &mask, /// a bit mask that will be filled reporting what kind of data we have found in the file (per vertex color, texture coords etc) - const RichParameterList & par, /// The parameters that have been set up in the initPreOpenParameter() - vcg::CallBackPos *cb = 0, /// standard callback for reporting progress in the loading - QWidget *parent = 0) = 0; /// you should not use this... - - virtual bool save( - const QString &format, // the extension of the format e.g. "PLY" - const QString &fileName, - MeshModel &m, - const int mask, // a bit mask indicating what kind of the data present in the mesh should be saved (e.g. you could not want to save normals in ply files) - const RichParameterList & par, - vcg::CallBackPos *cb = 0, - QWidget *parent = 0) = 0; - - /// This function is invoked by the framework when the import/export plugin fails to give some info to the user about the failure - /// io plugins should avoid using QMessageBox for reporting errors. - /// Failure should put some meaningful information inside the errorMessage string. - virtual QString &errorMsg() { return this->errorMessage; } - void clearErrorString() { errorMessage.clear(); } - - // this string is used to pass back to the framework error messages in case of failure of a filter apply. - // NEVER EVER use a msgbox to say something to the user. - QString errorMessage; - -}; /** \brief The MeshFilterInterface class provide the interface of the filter plugins. @@ -564,7 +490,6 @@ public: #define MESHLAB_PLUGIN_IID_EXPORTER(x) Q_PLUGIN_METADATA(IID x) #define MESHLAB_PLUGIN_NAME_EXPORTER(x) -#define MESH_IO_INTERFACE_IID "vcg.meshlab.MeshIOInterface/1.0" #define MESH_FILTER_INTERFACE_IID "vcg.meshlab.MeshFilterInterface/1.0" #define MESHLAB_FILTER_INTERFACE_IID "vcg.meshlab.MeshLabFilterInterface/1.0" #define MESH_RENDER_INTERFACE_IID "vcg.meshlab.MeshRenderInterface/1.0" @@ -572,7 +497,6 @@ public: #define MESH_EDIT_INTERFACE_IID "vcg.meshlab.MeshEditInterface/1.0" #define MESH_EDIT_INTERFACE_FACTORY_IID "vcg.meshlab.MeshEditInterfaceFactory/1.0" -Q_DECLARE_INTERFACE(MeshIOInterface, MESH_IO_INTERFACE_IID) Q_DECLARE_INTERFACE(MeshFilterInterface, MESH_FILTER_INTERFACE_IID) Q_DECLARE_INTERFACE(MeshRenderInterface, MESH_RENDER_INTERFACE_IID) Q_DECLARE_INTERFACE(MeshDecorateInterface, MESH_DECORATE_INTERFACE_IID) diff --git a/src/common/interfaces/io_plugin_interface.h b/src/common/interfaces/io_plugin_interface.h new file mode 100644 index 000000000..770415f6a --- /dev/null +++ b/src/common/interfaces/io_plugin_interface.h @@ -0,0 +1,112 @@ +/**************************************************************************** +* MeshLab o o * +* A versatile mesh processing toolbox o o * +* _ O _ * +* Copyright(C) 2005-2020 \/)\/ * +* Visual Computing Lab /\/| * +* ISTI - Italian National Research Council | * +* \ * +* All rights reserved. * +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License as published by * +* the Free Software Foundation; either version 2 of the License, or * +* (at your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* GNU General Public License (http://www.gnu.org/licenses/gpl.txt) * +* for more details. * +* * +****************************************************************************/ + +#ifndef MESHLAB_IO_PLUGIN_INTERFACE_H +#define MESHLAB_IO_PLUGIN_INTERFACE_H + +#include + +#include "plugin_interface.h" + +/** \brief The MeshIOInterface is the base class for all the single mesh loading plugins. +*/ +class IOPluginInterface : public PluginInterface +{ +public: + class Format + { + public: + Format(QString description, QString ex) : description(description) { extensions << ex; } + QString description; + QStringList extensions; + }; + + IOPluginInterface() : PluginInterface() { } + virtual ~IOPluginInterface() {} + + virtual QList importFormats() const = 0; + virtual QList exportFormats() const = 0; + + // This function is called to initialize the list of additional parameters that a OPENING filter could require + // it is called by the framework BEFORE the actual mesh loading to perform to determine how parse the input file + // The instanced parameters are then passed to the open at the loading time. + // Typical example of use to decide what subportion of a mesh you have to load. + // If you do not need any additional processing simply do not override this and ignore the parameterSet in the open + virtual void initPreOpenParameter(const QString &/*format*/, const QString &/*fileName*/, RichParameterList & /*par*/) {} + + // This function is called to initialize the list of additional parameters that a OPENING filter could require + // it is called by the framework AFTER the mesh is already loaded to perform more or less standard processing on the mesh. + // typical example: unifying vertices in stl models. + // If you do not need any additional processing do nothing. + virtual void initOpenParameter(const QString &/*format*/, MeshModel &/*m*/, RichParameterList & /*par*/) {} + + // This is the corresponding function that is called after the mesh is loaded with the initialized parameters + virtual void applyOpenParameter(const QString &/*format*/, MeshModel &/*m*/, const RichParameterList &/*par*/) {} + + // This function is called to initialize the list of additional parameters that a SAVING filter could require + // it is called by the framework after the mesh is loaded to perform more or less standard processing on the mesh. + // typical example: ascii or binary format for ply or stl + // If you do not need any additional parameter simply do nothing. + virtual void initSaveParameter(const QString &/*format*/, MeshModel &/*m*/, RichParameterList & /*par*/) {} + + + virtual void GetExportMaskCapability(const QString &format, int &capability, int &defaultBits) const = 0; + + /// callback used to actually load a mesh from a file + virtual bool open( + const QString &format, /// the extension of the format e.g. "PLY" + const QString &fileName, /// The name of the file to be opened + MeshModel &m, /// The mesh that is filled with the file content + int &mask, /// a bit mask that will be filled reporting what kind of data we have found in the file (per vertex color, texture coords etc) + const RichParameterList & par, /// The parameters that have been set up in the initPreOpenParameter() + vcg::CallBackPos *cb = 0, /// standard callback for reporting progress in the loading + QWidget *parent = 0) = 0; /// you should not use this... + + virtual bool save( + const QString &format, // the extension of the format e.g. "PLY" + const QString &fileName, + MeshModel &m, + const int mask,// a bit mask indicating what kind of the data present in the mesh should be saved (e.g. you could not want to save normals in ply files) + const RichParameterList & par, + vcg::CallBackPos *cb = 0, + QWidget *parent = 0) = 0; + + /// This function is invoked by the framework when the import/export plugin fails to give some info to the user about the failure + /// io plugins should avoid using QMessageBox for reporting errors. + /// Failure should put some meaningful information inside the errorMessage string. + virtual QString &errorMsg() { return this->errorMessage; } + void clearErrorString() { errorMessage.clear(); } + + // this string is used to pass back to the framework error messages in case of failure of a filter apply. + // NEVER EVER use a msgbox to say something to the user. + QString errorMessage; + +}; + +#define MESHLAB_PLUGIN_IID_EXPORTER(x) Q_PLUGIN_METADATA(IID x) +#define MESHLAB_PLUGIN_NAME_EXPORTER(x) + +#define MESH_IO_INTERFACE_IID "vcg.meshlab.IOPluginInterface/1.0" +Q_DECLARE_INTERFACE(IOPluginInterface, MESH_IO_INTERFACE_IID) + +#endif // MESHLAB_IO_PLUGIN_INTERFACE_H diff --git a/src/common/pluginmanager.cpp b/src/common/pluginmanager.cpp index 80710a11b..441f71d83 100644 --- a/src/common/pluginmanager.cpp +++ b/src/common/pluginmanager.cpp @@ -107,7 +107,7 @@ void PluginManager::loadPlugins(RichParameterList& defaultGlobal, const QDir& pl throw MLException("Missing Arity for " +fileName+filterAction->text()); } } - MeshIOInterface *iIO = qobject_cast(plugin); + IOPluginInterface *iIO = qobject_cast(plugin); if (iIO) { iCommon = iIO; @@ -271,11 +271,11 @@ void PluginManager::knownIOFormats() { QStringList* formatFilters = NULL; QString allKnownFormatsFilter = QObject::tr("All known formats ("); - for (QVector::iterator itIOPlugin = meshIOPlug.begin(); itIOPlugin != meshIOPlug.end(); ++itIOPlugin) + for (QVector::iterator itIOPlugin = meshIOPlug.begin(); itIOPlugin != meshIOPlug.end(); ++itIOPlugin) { - MeshIOInterface* pMeshIOPlugin = *itIOPlugin; - QList format; - QMap* map = NULL; + IOPluginInterface* pMeshIOPlugin = *itIOPlugin; + QList format; + QMap* map = NULL; if (inpOut == int(IMPORT)) { map = &allKnowInputFormats; @@ -288,9 +288,9 @@ void PluginManager::knownIOFormats() formatFilters = &outFilters; format = pMeshIOPlugin->exportFormats(); } - for (QList::iterator itf = format.begin(); itf != format.end(); ++itf) + for (QList::iterator itf = format.begin(); itf != format.end(); ++itf) { - MeshIOInterface::Format currentFormat = *itf; + IOPluginInterface::Format currentFormat = *itf; QString currentFilterEntry = currentFormat.description + " ("; diff --git a/src/common/pluginmanager.h b/src/common/pluginmanager.h index 00658c659..6f54774c9 100644 --- a/src/common/pluginmanager.h +++ b/src/common/pluginmanager.h @@ -25,6 +25,7 @@ #define PLUGINMANAGER_H #include "interfaces.h" +#include "interfaces/io_plugin_interface.h" //#include "scriptsyntax.h" #include @@ -59,12 +60,12 @@ public: QMap actionFilterMap; QMap stringFilterMap; - QMap allKnowInputFormats; - QMap allKnowOutputFormats; + QMap allKnowInputFormats; + QMap allKnowOutputFormats; QStringList inpFilters; QStringList outFilters; - QVector meshIOPlug; + QVector meshIOPlug; QVector meshFilterPlug; QVector meshRenderPlug; QVector meshDecoratePlug; diff --git a/src/meshlab/mainwindow.h b/src/meshlab/mainwindow.h index 564b8054a..9992d31e7 100644 --- a/src/meshlab/mainwindow.h +++ b/src/meshlab/mainwindow.h @@ -147,7 +147,7 @@ private slots: public: bool exportMesh(QString fileName,MeshModel* mod,const bool saveAllPossibleAttributes); - bool loadMesh(const QString& fileName,MeshIOInterface *pCurrentIOPlugin,MeshModel* mm,int& mask,RichParameterList* prePar,const Matrix44m &mtr=Matrix44m::Identity(), bool isareload = false, MLRenderingData* rendOpt = NULL); + bool loadMesh(const QString& fileName,IOPluginInterface *pCurrentIOPlugin,MeshModel* mm,int& mask,RichParameterList* prePar,const Matrix44m &mtr=Matrix44m::Identity(), bool isareload = false, MLRenderingData* rendOpt = NULL); void computeRenderingDataOnLoading(MeshModel* mm,bool isareload, MLRenderingData* rendOpt = NULL); diff --git a/src/meshlab/mainwindow_RunTime.cpp b/src/meshlab/mainwindow_RunTime.cpp index 784bcbf6c..33a8bc3ba 100644 --- a/src/meshlab/mainwindow_RunTime.cpp +++ b/src/meshlab/mainwindow_RunTime.cpp @@ -2073,7 +2073,7 @@ bool MainWindow::importRaster(const QString& fileImg) return true; } -bool MainWindow::loadMesh(const QString& fileName, MeshIOInterface *pCurrentIOPlugin, MeshModel* mm, int& mask,RichParameterList* prePar, const Matrix44m &mtr, bool isareload, MLRenderingData* rendOpt) +bool MainWindow::loadMesh(const QString& fileName, IOPluginInterface *pCurrentIOPlugin, MeshModel* mm, int& mask,RichParameterList* prePar, const Matrix44m &mtr, bool isareload, MLRenderingData* rendOpt) { if ((GLA() == NULL) || (mm == NULL)) return false; @@ -2286,7 +2286,7 @@ bool MainWindow::importMesh(QString fileName,bool isareload) { QFileInfo fi(fileName); QString extension = fi.suffix(); - MeshIOInterface *pCurrentIOPlugin = PM.allKnowInputFormats[extension.toLower()]; + IOPluginInterface *pCurrentIOPlugin = PM.allKnowInputFormats[extension.toLower()]; //pCurrentIOPlugin->setLog(gla->log); if (pCurrentIOPlugin == NULL) { @@ -2382,7 +2382,7 @@ bool MainWindow::loadMeshWithStandardParams(QString& fullPath, MeshModel* mm, co mm->Clear(); QFileInfo fi(fullPath); QString extension = fi.suffix(); - MeshIOInterface *pCurrentIOPlugin = PM.allKnowInputFormats[extension.toLower()]; + IOPluginInterface *pCurrentIOPlugin = PM.allKnowInputFormats[extension.toLower()]; if(pCurrentIOPlugin != NULL) { @@ -2521,7 +2521,7 @@ bool MainWindow::exportMesh(QString fileName,MeshModel* mod,const bool saveAllPo QStringListIterator itFilter(suffixList); - MeshIOInterface *pCurrentIOPlugin = PM.allKnowOutputFormats[extension.toLower()]; + IOPluginInterface *pCurrentIOPlugin = PM.allKnowOutputFormats[extension.toLower()]; if (pCurrentIOPlugin == 0) { QMessageBox::warning(this, "Unknown type", "File extension not supported!"); diff --git a/src/meshlab/plugindialog.cpp b/src/meshlab/plugindialog.cpp index bd3d5f0df..26c9ec8f0 100644 --- a/src/meshlab/plugindialog.cpp +++ b/src/meshlab/plugindialog.cpp @@ -23,6 +23,7 @@ #include "plugindialog.h" #include +#include #include #include @@ -116,15 +117,15 @@ void PluginDialog::populateTreeWidget(const QString &path,const QStringList &fil pluginItem->setFont(0, boldFont); if (plugin) { - MeshIOInterface *iMeshIO = qobject_cast(plugin); + IOPluginInterface *iMeshIO = qobject_cast(plugin); if (iMeshIO){ QStringList Templist; - foreach(const MeshIOInterface::Format f,iMeshIO->importFormats()){ + foreach(const IOPluginInterface::Format f,iMeshIO->importFormats()){ QString formats; foreach(const QString s,f.extensions) formats+="Importer_"+s+" "; Templist.push_back(formats); } - foreach(const MeshIOInterface::Format f,iMeshIO->exportFormats()){ + foreach(const IOPluginInterface::Format f,iMeshIO->exportFormats()){ QString formats; foreach(const QString s,f.extensions) formats+="Exporter_"+s+" "; Templist.push_back(formats); @@ -184,14 +185,14 @@ void PluginDialog::displayInfo(QTreeWidgetItem* item,int /* ncolumn*/) qDebug("Trying to load the plugin '%s'", qUtf8Printable(fileName)); QObject *plugin = loader.instance(); if (plugin) { - MeshIOInterface *iMeshIO = qobject_cast(plugin); + IOPluginInterface *iMeshIO = qobject_cast(plugin); if (iMeshIO){ - foreach(const MeshIOInterface::Format f,iMeshIO->importFormats()){ + foreach(const IOPluginInterface::Format f,iMeshIO->importFormats()){ QString formats; foreach(const QString s,f.extensions) formats+="Importer_"+s+" "; if (actionName==formats) labelInfo->setText(f.description); } - foreach(const MeshIOInterface::Format f,iMeshIO->exportFormats()){ + foreach(const IOPluginInterface::Format f,iMeshIO->exportFormats()){ QString formats; foreach(const QString s,f.extensions) formats+="Exporter_"+s+" "; if (actionName==formats) labelInfo->setText(f.description); diff --git a/src/meshlabplugins/filter_ssynth/filter_ssynth.cpp b/src/meshlabplugins/filter_ssynth/filter_ssynth.cpp index 9d6b5eed4..6b612cbe5 100644 --- a/src/meshlabplugins/filter_ssynth/filter_ssynth.cpp +++ b/src/meshlabplugins/filter_ssynth/filter_ssynth.cpp @@ -158,16 +158,16 @@ MeshFilterInterface::FilterClass FilterSSynth::getClass(const QAction */*filter* return MeshFilterInterface::MeshCreation; } -QList FilterSSynth::importFormats() const +QList FilterSSynth::importFormats() const { - QList formats; - formats<< MeshIOInterface::Format("Eisen Script File", tr("ES")); + QList formats; + formats<< IOPluginInterface::Format("Eisen Script File", tr("ES")); return formats; } -QList FilterSSynth::exportFormats() const +QList FilterSSynth::exportFormats() const { - QList formats; + QList formats; return formats ; } diff --git a/src/meshlabplugins/filter_ssynth/filter_ssynth.h b/src/meshlabplugins/filter_ssynth/filter_ssynth.h index 40bfabbf0..6d2ba3991 100644 --- a/src/meshlabplugins/filter_ssynth/filter_ssynth.h +++ b/src/meshlabplugins/filter_ssynth/filter_ssynth.h @@ -31,10 +31,10 @@ #include #include -class FilterSSynth : public QObject,public MeshIOInterface, public MeshFilterInterface{ +class FilterSSynth : public QObject,public IOPluginInterface, public MeshFilterInterface{ Q_OBJECT MESHLAB_PLUGIN_IID_EXPORTER(MESH_FILTER_INTERFACE_IID) - Q_INTERFACES(MeshFilterInterface MeshIOInterface) + Q_INTERFACES(MeshFilterInterface IOPluginInterface) public: enum {CR_SSYNTH} ; diff --git a/src/meshlabplugins/filter_trioptimize/filter_trioptimize.cpp b/src/meshlabplugins/filter_trioptimize/filter_trioptimize.cpp index c3c70afd5..9531001d4 100644 --- a/src/meshlabplugins/filter_trioptimize/filter_trioptimize.cpp +++ b/src/meshlabplugins/filter_trioptimize/filter_trioptimize.cpp @@ -171,7 +171,7 @@ QString TriOptimizePlugin::pluginName() const return {}; } - TriOptimizePlugin::FilterClass TriOptimizePlugin::getClass(const QAction *action) + TriOptimizePlugin::FilterClass TriOptimizePlugin::getClass(const QAction *action) const { switch(ID(action)) { case FP_PLANAR_EDGE_FLIP: return MeshFilterInterface::Remeshing; diff --git a/src/meshlabplugins/filter_trioptimize/filter_trioptimize.h b/src/meshlabplugins/filter_trioptimize/filter_trioptimize.h index b42fc80b9..26da938d9 100644 --- a/src/meshlabplugins/filter_trioptimize/filter_trioptimize.h +++ b/src/meshlabplugins/filter_trioptimize/filter_trioptimize.h @@ -50,7 +50,7 @@ public: void initParameterList(const QAction*, MeshModel &/*m*/, RichParameterList & /*parent*/); bool applyFilter(const QAction *filter, MeshDocument &md, const RichParameterList &/*parent*/, vcg::CallBackPos * cb) ; int getRequirements(const QAction*); - FilterClass getClass(const QAction *); + FilterClass getClass(const QAction *) const; int postCondition(const QAction* ) const; FILTER_ARITY filterArity(const QAction *) const {return SINGLE_MESH;} diff --git a/src/meshlabplugins/io_3ds/import_3ds.h b/src/meshlabplugins/io_3ds/import_3ds.h index 13b36d83e..5a97791e9 100644 --- a/src/meshlabplugins/io_3ds/import_3ds.h +++ b/src/meshlabplugins/io_3ds/import_3ds.h @@ -41,12 +41,14 @@ #ifndef __VCGLIB_IMPORT_3DS #define __VCGLIB_IMPORT_3DS -#include #include "io_3ds.h" + +#include #include +#include // lib3ds headers -#include +#include #include #include #include diff --git a/src/meshlabplugins/io_3ds/meshio.cpp b/src/meshlabplugins/io_3ds/meshio.cpp index beb01eef9..a28986820 100644 --- a/src/meshlabplugins/io_3ds/meshio.cpp +++ b/src/meshlabplugins/io_3ds/meshio.cpp @@ -41,6 +41,8 @@ #include #include +#include +#include using namespace std; using namespace vcg; @@ -233,7 +235,7 @@ bool ExtraMeshIOPlugin::save(const QString &formatName, const QString &fileName, /* returns the list of the file's type which can be imported */ -QList ExtraMeshIOPlugin::importFormats() const +QList ExtraMeshIOPlugin::importFormats() const { QList formatList; formatList << Format("3D-Studio File Format" ,tr("3DS")); @@ -243,7 +245,7 @@ QList ExtraMeshIOPlugin::importFormats() const /* returns the list of the file's type which can be exported */ -QList ExtraMeshIOPlugin::exportFormats() const +QList ExtraMeshIOPlugin::exportFormats() const { QList formatList; formatList << Format("3D-Studio File Format" ,tr("3DS")); diff --git a/src/meshlabplugins/io_3ds/meshio.h b/src/meshlabplugins/io_3ds/meshio.h index 8ef42e690..cb63aa055 100644 --- a/src/meshlabplugins/io_3ds/meshio.h +++ b/src/meshlabplugins/io_3ds/meshio.h @@ -27,13 +27,13 @@ #include #include -#include +#include -class ExtraMeshIOPlugin : public QObject, public MeshIOInterface +class ExtraMeshIOPlugin : public QObject, public IOPluginInterface { Q_OBJECT MESHLAB_PLUGIN_IID_EXPORTER(MESH_IO_INTERFACE_IID) - Q_INTERFACES(MeshIOInterface) + Q_INTERFACES(IOPluginInterface) public: diff --git a/src/meshlabplugins/io_base/baseio.cpp b/src/meshlabplugins/io_base/baseio.cpp index fa71b99ee..72878d5d5 100644 --- a/src/meshlabplugins/io_base/baseio.cpp +++ b/src/meshlabplugins/io_base/baseio.cpp @@ -22,6 +22,7 @@ ****************************************************************************/ #include "baseio.h" +#include #include #include @@ -429,7 +430,7 @@ QString BaseMeshIOPlugin::pluginName() const /* returns the list of the file's type which can be imported */ -QList BaseMeshIOPlugin::importFormats() const +QList BaseMeshIOPlugin::importFormats() const { QList formatList; formatList << Format("Stanford Polygon File Format", tr("PLY")); @@ -447,7 +448,7 @@ QList BaseMeshIOPlugin::importFormats() const /* returns the list of the file's type which can be exported */ -QList BaseMeshIOPlugin::exportFormats() const +QList BaseMeshIOPlugin::exportFormats() const { QList formatList; formatList << Format("Stanford Polygon File Format", tr("PLY")); diff --git a/src/meshlabplugins/io_base/baseio.h b/src/meshlabplugins/io_base/baseio.h index 4c93de49d..b92762168 100644 --- a/src/meshlabplugins/io_base/baseio.h +++ b/src/meshlabplugins/io_base/baseio.h @@ -23,18 +23,19 @@ #ifndef BASEIOPLUGIN_H #define BASEIOPLUGIN_H -#include +#include +#include -class BaseMeshIOPlugin : public QObject, public MeshIOInterface +class BaseMeshIOPlugin : public QObject, public IOPluginInterface { Q_OBJECT MESHLAB_PLUGIN_IID_EXPORTER(MESH_IO_INTERFACE_IID) - Q_INTERFACES(MeshIOInterface) + Q_INTERFACES(IOPluginInterface) public: - BaseMeshIOPlugin() : MeshIOInterface() {} + BaseMeshIOPlugin() : IOPluginInterface() {} QString pluginName() const; QList importFormats() const; diff --git a/src/meshlabplugins/io_bre/io_bre.cpp b/src/meshlabplugins/io_bre/io_bre.cpp index a27a25746..68f25067d 100644 --- a/src/meshlabplugins/io_bre/io_bre.cpp +++ b/src/meshlabplugins/io_bre/io_bre.cpp @@ -160,7 +160,7 @@ QString BreMeshIOPlugin::pluginName() const return "IOBRE"; } -QList BreMeshIOPlugin::importFormats() const +QList BreMeshIOPlugin::importFormats() const { QList formatList; formatList << Format("Breuckmann File Format" , tr("BRE")); @@ -171,7 +171,7 @@ QList BreMeshIOPlugin::importFormats() const /* returns the list of the file's type which can be exported */ -QList BreMeshIOPlugin::exportFormats() const +QList BreMeshIOPlugin::exportFormats() const { QList formatList; //formatList << Format("Breuckmann File Format" , tr("BRE")); diff --git a/src/meshlabplugins/io_bre/io_bre.h b/src/meshlabplugins/io_bre/io_bre.h index fc0b572b8..90a90bc05 100644 --- a/src/meshlabplugins/io_bre/io_bre.h +++ b/src/meshlabplugins/io_bre/io_bre.h @@ -23,7 +23,8 @@ #ifndef IOBREPLUGIN_H #define IOBREPLUGIN_H -#include +#include +#include namespace vcg { namespace tri { @@ -149,15 +150,15 @@ namespace io { }//namespace tri }//namespace vcg -class BreMeshIOPlugin : public QObject, public MeshIOInterface +class BreMeshIOPlugin : public QObject, public IOPluginInterface { Q_OBJECT MESHLAB_PLUGIN_IID_EXPORTER(MESH_IO_INTERFACE_IID) - Q_INTERFACES(MeshIOInterface) + Q_INTERFACES(IOPluginInterface) public: - BreMeshIOPlugin() : MeshIOInterface() {} + BreMeshIOPlugin() : IOPluginInterface() {} QString pluginName() const; QList importFormats() const; diff --git a/src/meshlabplugins/io_collada/io_collada.cpp b/src/meshlabplugins/io_collada/io_collada.cpp index bcd1edec2..601c2d9cf 100644 --- a/src/meshlabplugins/io_collada/io_collada.cpp +++ b/src/meshlabplugins/io_collada/io_collada.cpp @@ -88,6 +88,8 @@ #include #include +#include +#include #include "io_collada.h" @@ -217,7 +219,7 @@ QString ColladaIOPlugin::pluginName() const return "IOCollada"; } -QList ColladaIOPlugin::importFormats() const +QList ColladaIOPlugin::importFormats() const { QList formatList; formatList << Format("Collada File Format" ,tr("DAE")); @@ -227,7 +229,7 @@ QList ColladaIOPlugin::importFormats() const /* returns the list of the file's type which can be exported */ -QList ColladaIOPlugin::exportFormats() const +QList ColladaIOPlugin::exportFormats() const { QList formatList; formatList << Format("Collada File Format" ,tr("DAE")); diff --git a/src/meshlabplugins/io_collada/io_collada.h b/src/meshlabplugins/io_collada/io_collada.h index e2f0170a1..fffccf15a 100644 --- a/src/meshlabplugins/io_collada/io_collada.h +++ b/src/meshlabplugins/io_collada/io_collada.h @@ -44,13 +44,14 @@ #define COLLADAIOPLUGIN_H #include -#include +#include +#include -class ColladaIOPlugin : public QObject, public MeshIOInterface +class ColladaIOPlugin : public QObject, public IOPluginInterface { Q_OBJECT MESHLAB_PLUGIN_IID_EXPORTER(MESH_IO_INTERFACE_IID) - Q_INTERFACES(MeshIOInterface) + Q_INTERFACES(IOPluginInterface) public: //std::map _mp; diff --git a/src/meshlabplugins/io_ctm/io_ctm.cpp b/src/meshlabplugins/io_ctm/io_ctm.cpp index 6c07d1154..8ed221c3e 100644 --- a/src/meshlabplugins/io_ctm/io_ctm.cpp +++ b/src/meshlabplugins/io_ctm/io_ctm.cpp @@ -71,7 +71,7 @@ QString IOMPlugin::pluginName() const return "IOCTM"; } -QList IOMPlugin::importFormats() const +QList IOMPlugin::importFormats() const { QList formatList; formatList << Format("OpenCTM compressed format" ,tr("CTM")); @@ -81,7 +81,7 @@ QList IOMPlugin::importFormats() const /* returns the list of the file's type which can be exported */ -QList IOMPlugin::exportFormats() const +QList IOMPlugin::exportFormats() const { QList formatList; formatList << Format("OpenCTM compressed format" ,tr("CTM")); diff --git a/src/meshlabplugins/io_ctm/io_ctm.h b/src/meshlabplugins/io_ctm/io_ctm.h index c720bb3e9..eeeb0a23d 100644 --- a/src/meshlabplugins/io_ctm/io_ctm.h +++ b/src/meshlabplugins/io_ctm/io_ctm.h @@ -31,13 +31,14 @@ #include -#include +#include +#include -class IOMPlugin : public QObject, public MeshIOInterface +class IOMPlugin : public QObject, public IOPluginInterface { Q_OBJECT MESHLAB_PLUGIN_IID_EXPORTER(MESH_IO_INTERFACE_IID) - Q_INTERFACES(MeshIOInterface) + Q_INTERFACES(IOPluginInterface) public: diff --git a/src/meshlabplugins/io_expe/io_expe.cpp b/src/meshlabplugins/io_expe/io_expe.cpp index 207bba10f..5caa4e561 100644 --- a/src/meshlabplugins/io_expe/io_expe.cpp +++ b/src/meshlabplugins/io_expe/io_expe.cpp @@ -150,7 +150,7 @@ QString ExpeIOPlugin::pluginName() const return "IOExpe"; } -QList ExpeIOPlugin::importFormats() const +QList ExpeIOPlugin::importFormats() const { QList formatList; formatList << Format("Expe's point set (binary)" ,tr("pts")); @@ -162,7 +162,7 @@ QList ExpeIOPlugin::importFormats() const /* returns the list of the file's type which can be exported */ -QList ExpeIOPlugin::exportFormats() const +QList ExpeIOPlugin::exportFormats() const { QList formatList; // formatList << Format("Expe's point set (binary)" ,tr("pts")); diff --git a/src/meshlabplugins/io_expe/io_expe.h b/src/meshlabplugins/io_expe/io_expe.h index 1ddc91222..679cb8960 100644 --- a/src/meshlabplugins/io_expe/io_expe.h +++ b/src/meshlabplugins/io_expe/io_expe.h @@ -26,13 +26,14 @@ #include -#include +#include +#include -class ExpeIOPlugin : public QObject, public MeshIOInterface +class ExpeIOPlugin : public QObject, public IOPluginInterface { Q_OBJECT MESHLAB_PLUGIN_IID_EXPORTER(MESH_IO_INTERFACE_IID) - Q_INTERFACES(MeshIOInterface) + Q_INTERFACES(IOPluginInterface) public: diff --git a/src/meshlabplugins/io_json/io_json.cpp b/src/meshlabplugins/io_json/io_json.cpp index 0f6d6fff9..c17aaf458 100644 --- a/src/meshlabplugins/io_json/io_json.cpp +++ b/src/meshlabplugins/io_json/io_json.cpp @@ -30,7 +30,7 @@ #include #include -JSONIOPlugin::JSONIOPlugin(void) : MeshIOInterface() +JSONIOPlugin::JSONIOPlugin(void) : IOPluginInterface() { ; } @@ -426,7 +426,7 @@ bool JSONIOPlugin::save(const QString & formatName,const QString & fileName, Mes /* returns the list of the file's type which can be imported */ -QList JSONIOPlugin::importFormats(void) const +QList JSONIOPlugin::importFormats(void) const { QList formatList; //formatList << Format("JavaScript JSON", tr("JSON")); @@ -436,7 +436,7 @@ QList JSONIOPlugin::importFormats(void) const /* returns the list of the file's type which can be exported */ -QList JSONIOPlugin::exportFormats(void) const +QList JSONIOPlugin::exportFormats(void) const { QList formatList; formatList << Format("JavaScript JSON", tr("JSON")); diff --git a/src/meshlabplugins/io_json/io_json.h b/src/meshlabplugins/io_json/io_json.h index afee1f9a7..80032ad1c 100644 --- a/src/meshlabplugins/io_json/io_json.h +++ b/src/meshlabplugins/io_json/io_json.h @@ -23,13 +23,14 @@ #ifndef JSONIOPLUGIN_H #define JSONIOPLUGIN_H -#include +#include +#include -class JSONIOPlugin : public QObject, public MeshIOInterface +class JSONIOPlugin : public QObject, public IOPluginInterface { Q_OBJECT MESHLAB_PLUGIN_IID_EXPORTER(MESH_IO_INTERFACE_IID) - Q_INTERFACES(MeshIOInterface) + Q_INTERFACES(IOPluginInterface) public: diff --git a/src/meshlabplugins/io_pdb/io_pdb.cpp b/src/meshlabplugins/io_pdb/io_pdb.cpp index 610ac6f04..4383a493b 100644 --- a/src/meshlabplugins/io_pdb/io_pdb.cpp +++ b/src/meshlabplugins/io_pdb/io_pdb.cpp @@ -148,7 +148,7 @@ QString PDBIOPlugin::pluginName() const return "IOPDB"; } -QList PDBIOPlugin::importFormats() const +QList PDBIOPlugin::importFormats() const { QList formatList; formatList << Format("Protein Data Bank" , tr("PDB")); @@ -159,7 +159,7 @@ QList PDBIOPlugin::importFormats() const /* returns the list of the file's type which can be exported */ -QList PDBIOPlugin::exportFormats() const +QList PDBIOPlugin::exportFormats() const { QList formatList; // formatList << Format("Stanford Polygon File Format" , tr("PLY")); diff --git a/src/meshlabplugins/io_pdb/io_pdb.h b/src/meshlabplugins/io_pdb/io_pdb.h index 562a10085..11e9fff15 100644 --- a/src/meshlabplugins/io_pdb/io_pdb.h +++ b/src/meshlabplugins/io_pdb/io_pdb.h @@ -24,14 +24,14 @@ #ifndef PDBIOPLUGIN_H #define PDBIOPLUGIN_H +#include +#include -#include - -class PDBIOPlugin : public QObject, public MeshIOInterface +class PDBIOPlugin : public QObject, public IOPluginInterface { Q_OBJECT MESHLAB_PLUGIN_IID_EXPORTER(MESH_IO_INTERFACE_IID) - Q_INTERFACES(MeshIOInterface) + Q_INTERFACES(IOPluginInterface) public: diff --git a/src/meshlabplugins/io_tri/io_tri.cpp b/src/meshlabplugins/io_tri/io_tri.cpp index 2f1f113a7..0eff96a30 100755 --- a/src/meshlabplugins/io_tri/io_tri.cpp +++ b/src/meshlabplugins/io_tri/io_tri.cpp @@ -87,7 +87,7 @@ QString TriIOPlugin::pluginName() const return "IOTRI"; } -QList TriIOPlugin::importFormats() const +QList TriIOPlugin::importFormats() const { QList formatList; formatList @@ -99,7 +99,7 @@ QList TriIOPlugin::importFormats() const /* returns the list of the file's type which can be exported */ -QList TriIOPlugin::exportFormats() const +QList TriIOPlugin::exportFormats() const { QList formatList; return formatList; diff --git a/src/meshlabplugins/io_tri/io_tri.h b/src/meshlabplugins/io_tri/io_tri.h index 6047d439e..5f919fc79 100755 --- a/src/meshlabplugins/io_tri/io_tri.h +++ b/src/meshlabplugins/io_tri/io_tri.h @@ -31,13 +31,14 @@ #include -#include +#include +#include -class TriIOPlugin : public QObject, public MeshIOInterface +class TriIOPlugin : public QObject, public IOPluginInterface { Q_OBJECT MESHLAB_PLUGIN_IID_EXPORTER(MESH_IO_INTERFACE_IID) - Q_INTERFACES(MeshIOInterface) + Q_INTERFACES(IOPluginInterface) public: diff --git a/src/meshlabplugins/io_txt/io_txt.cpp b/src/meshlabplugins/io_txt/io_txt.cpp index 04259e540..4b42d0b21 100755 --- a/src/meshlabplugins/io_txt/io_txt.cpp +++ b/src/meshlabplugins/io_txt/io_txt.cpp @@ -103,7 +103,7 @@ QString TxtIOPlugin::pluginName() const return "IOTXT"; } -QList TxtIOPlugin::importFormats() const +QList TxtIOPlugin::importFormats() const { QList formatList; formatList << Format("TXT (Generic ASCII point list)", tr("TXT")); @@ -114,7 +114,7 @@ QList TxtIOPlugin::importFormats() const /* returns the list of the file's type which can be exported */ -QList TxtIOPlugin::exportFormats() const +QList TxtIOPlugin::exportFormats() const { QList formatList; return formatList; diff --git a/src/meshlabplugins/io_txt/io_txt.h b/src/meshlabplugins/io_txt/io_txt.h index 026da498f..bf0e0638b 100755 --- a/src/meshlabplugins/io_txt/io_txt.h +++ b/src/meshlabplugins/io_txt/io_txt.h @@ -25,13 +25,14 @@ #include -#include +#include +#include -class TxtIOPlugin : public QObject, public MeshIOInterface +class TxtIOPlugin : public QObject, public IOPluginInterface { Q_OBJECT MESHLAB_PLUGIN_IID_EXPORTER(MESH_IO_INTERFACE_IID) - Q_INTERFACES(MeshIOInterface) + Q_INTERFACES(IOPluginInterface) public: diff --git a/src/meshlabplugins/io_u3d/io_u3d.cpp b/src/meshlabplugins/io_u3d/io_u3d.cpp index 0410f4a0c..71fb5ddc3 100644 --- a/src/meshlabplugins/io_u3d/io_u3d.cpp +++ b/src/meshlabplugins/io_u3d/io_u3d.cpp @@ -41,7 +41,7 @@ using namespace vcg; U3DIOPlugin::U3DIOPlugin() -:QObject(),MeshIOInterface(),_param() +:QObject(),IOPluginInterface(),_param() { } @@ -125,7 +125,7 @@ QString U3DIOPlugin::pluginName() const return "IOU3D"; } -QList U3DIOPlugin::importFormats() const +QList U3DIOPlugin::importFormats() const { QList formatList; return formatList; @@ -134,7 +134,7 @@ QList U3DIOPlugin::importFormats() const /* returns the list of the file's type which can be exported */ -QList U3DIOPlugin::exportFormats() const +QList U3DIOPlugin::exportFormats() const { QList formatList; formatList << Format("U3D File Format" ,tr("U3D")); diff --git a/src/meshlabplugins/io_u3d/io_u3d.h b/src/meshlabplugins/io_u3d/io_u3d.h index 6ab1ba8c9..17238a2c5 100644 --- a/src/meshlabplugins/io_u3d/io_u3d.h +++ b/src/meshlabplugins/io_u3d/io_u3d.h @@ -28,15 +28,16 @@ #include #include -#include +#include +#include #include #include -class U3DIOPlugin : public QObject, public MeshIOInterface +class U3DIOPlugin : public QObject, public IOPluginInterface { Q_OBJECT MESHLAB_PLUGIN_IID_EXPORTER(MESH_IO_INTERFACE_IID) - Q_INTERFACES(MeshIOInterface) + Q_INTERFACES(IOPluginInterface) public: QString pluginName() const; diff --git a/src/meshlabplugins/io_x3d/io_x3d.cpp b/src/meshlabplugins/io_x3d/io_x3d.cpp index 2222a9567..66f605d4f 100644 --- a/src/meshlabplugins/io_x3d/io_x3d.cpp +++ b/src/meshlabplugins/io_x3d/io_x3d.cpp @@ -155,7 +155,7 @@ QString IoX3DPlugin::pluginName() const return "IOX3D"; } -QList IoX3DPlugin::importFormats() const +QList IoX3DPlugin::importFormats() const { QList formatList; formatList << Format("X3D File Format - XML encoding", tr("X3D")); @@ -167,7 +167,7 @@ QList IoX3DPlugin::importFormats() const /* returns the list of the file's type which can be exported */ -QList IoX3DPlugin::exportFormats() const +QList IoX3DPlugin::exportFormats() const { QList formatList; formatList << Format("X3D File Format", tr("X3D")); diff --git a/src/meshlabplugins/io_x3d/io_x3d.h b/src/meshlabplugins/io_x3d/io_x3d.h index afd9ed202..c1c7b2247 100644 --- a/src/meshlabplugins/io_x3d/io_x3d.h +++ b/src/meshlabplugins/io_x3d/io_x3d.h @@ -34,13 +34,14 @@ #include -#include +#include +#include -class IoX3DPlugin : public QObject, public MeshIOInterface +class IoX3DPlugin : public QObject, public IOPluginInterface { Q_OBJECT MESHLAB_PLUGIN_IID_EXPORTER(MESH_IO_INTERFACE_IID) - Q_INTERFACES(MeshIOInterface) + Q_INTERFACES(IOPluginInterface) public: diff --git a/src/meshlabserver/mainserver.cpp b/src/meshlabserver/mainserver.cpp index a4078493c..0a53753b8 100644 --- a/src/meshlabserver/mainserver.cpp +++ b/src/meshlabserver/mainserver.cpp @@ -138,7 +138,7 @@ public: // HashTable storing all supported formats together with // the (1-based) index of first plugin which is able to open it - QHash allKnownFormats; + QHash allKnownFormats; //PM.LoadFormats(filters, allKnownFormats,PluginManager::IMPORT); @@ -150,7 +150,7 @@ public: QString extension = fi.suffix(); qDebug("Opening a file with extension %s", qUtf8Printable(extension)); // retrieving corresponding IO plugin - MeshIOInterface* pCurrentIOPlugin = PM.allKnowInputFormats[extension.toLower()]; + IOPluginInterface* pCurrentIOPlugin = PM.allKnowInputFormats[extension.toLower()]; if (pCurrentIOPlugin == 0) { fprintf(fp,"Error encountered while opening file: "); @@ -215,7 +215,7 @@ public: QString extension = fi.suffix(); // retrieving corresponding IO plugin - MeshIOInterface* pCurrentIOPlugin = PM.allKnowOutputFormats[extension.toLower()]; + IOPluginInterface* pCurrentIOPlugin = PM.allKnowOutputFormats[extension.toLower()]; if (pCurrentIOPlugin == 0) { fprintf(fp,"Error encountered while opening file: "); @@ -245,7 +245,7 @@ public: return true; } - bool loadMesh(const QString& fileName, MeshIOInterface *pCurrentIOPlugin, MeshModel* mm, int& mask,RichParameterList* prePar, const Matrix44m &mtr, MeshDocument* md, FILE* fp = stdout) + bool loadMesh(const QString& fileName, IOPluginInterface *pCurrentIOPlugin, MeshModel* mm, int& mask,RichParameterList* prePar, const Matrix44m &mtr, MeshDocument* md, FILE* fp = stdout) { if (mm == NULL) return false; @@ -380,7 +380,7 @@ public: mm->Clear(); QFileInfo fi(fullPath); QString extension = fi.suffix(); - MeshIOInterface *pCurrentIOPlugin = PM.allKnowInputFormats[extension.toLower()]; + IOPluginInterface *pCurrentIOPlugin = PM.allKnowInputFormats[extension.toLower()]; if(pCurrentIOPlugin != NULL) { diff --git a/vcglib b/vcglib index d33a25db2..94cc728dd 160000 --- a/vcglib +++ b/vcglib @@ -1 +1 @@ -Subproject commit d33a25db2dfc63d74d9c40a7f0bd40633c4b8142 +Subproject commit 94cc728ddb9774eee62b84bcb1fe1cf252e03841