diff --git a/src/fgt/filter_func/filter_func.cpp b/src/fgt/filter_func/filter_func.cpp index 26ec12983..524630f46 100644 --- a/src/fgt/filter_func/filter_func.cpp +++ b/src/fgt/filter_func/filter_func.cpp @@ -320,7 +320,9 @@ void FilterFunctionPlugin::initParameterSet(QAction *action,MeshModel &m, RichPa // The Real Core Function doing the actual mesh processing. bool FilterFunctionPlugin::applyFilter(QAction *filter, MeshDocument &md, RichParameterSet & par, vcg::CallBackPos *cb) { - MeshModel &m=*(md.mm()); + if(this->getClass(filter) == MeshFilterInterface::MeshCreation) + md.addNewMesh("",this->filterName(ID(filter))); + MeshModel &m=*(md.mm()); Q_UNUSED(cb); switch(ID(filter)) { case FF_VERT_SELECTION : diff --git a/src/fgt/filter_ssynth/filter_ssynth.cpp b/src/fgt/filter_ssynth/filter_ssynth.cpp index 2c00d369a..1449f5867 100644 --- a/src/fgt/filter_ssynth/filter_ssynth.cpp +++ b/src/fgt/filter_ssynth/filter_ssynth.cpp @@ -71,6 +71,7 @@ void FilterSSynth::openX3D(const QString &fileName, MeshModel &m, int& mask, vcg } bool FilterSSynth::applyFilter(QAction* filter, MeshDocument &md, RichParameterSet & par, vcg::CallBackPos *cb) { + md.addNewMesh("",this->filterName(ID(filter))); QWidget * parent=(QWidget*)this->parent(); RichParameter* grammar=par.findParameter(QString("grammar")); RichParameter* seed=par.findParameter(QString("seed")); @@ -139,7 +140,7 @@ int FilterSSynth::getRequirements(QAction *) } int FilterSSynth::postCondition(QAction* filter) const { - return MeshModel::MM_VERTCOLOR; + return MeshModel::MM_UNKNOWN; } MeshFilterInterface::FilterClass FilterSSynth::getClass(QAction *filter) { diff --git a/src/meshlabplugins/filter_fractal/filter_fractal.cpp b/src/meshlabplugins/filter_fractal/filter_fractal.cpp index 30549f4d2..1c7f725b9 100644 --- a/src/meshlabplugins/filter_fractal/filter_fractal.cpp +++ b/src/meshlabplugins/filter_fractal/filter_fractal.cpp @@ -180,7 +180,9 @@ void FilterFractal::initParameterSetForCratersGeneration(MeshDocument &md, RichP bool FilterFractal::applyFilter(QAction* filter, MeshDocument &md, RichParameterSet &par, vcg::CallBackPos* cb) { - switch(ID(filter)) + if(this->getClass(filter) == MeshFilterInterface::MeshCreation) + md.addNewMesh("",this->filterName(ID(filter))); + switch(ID(filter)) { case CR_FRACTAL_TERRAIN: case FP_FRACTAL_MESH: diff --git a/src/sampleplugins/filtercreateiso/filtercreateiso.cpp b/src/sampleplugins/filtercreateiso/filtercreateiso.cpp index ea2368089..e02367a90 100644 --- a/src/sampleplugins/filtercreateiso/filtercreateiso.cpp +++ b/src/sampleplugins/filtercreateiso/filtercreateiso.cpp @@ -98,8 +98,9 @@ FilterCreateIso::~FilterCreateIso() { bool FilterCreateIso::applyFilter(QAction *filter, MeshDocument &md, RichParameterSet & par, vcg::CallBackPos * cb) { - MeshModel &m=*(md.mm()); - CMeshO::FaceIterator fi; + md.addNewMesh("",this->filterName(ID(filter))); + MeshModel &m=*(md.mm()); + CMeshO::FaceIterator fi; CMeshO::VertexIterator vi; if(filter->text() == filterName(FP_CREATEISO) ) {