From 5e14f342a6841a08aa9cce0ff4af586bf401423b Mon Sep 17 00:00:00 2001 From: Guido Ranzuglia granzuglia Date: Wed, 21 Mar 2012 07:49:34 +0000 Subject: [PATCH] removed crashes in the plugin. changed a message error. --- .../filter_fractal/craters_utils.h | 2 +- .../filter_fractal/filter_fractal.cpp | 4 +++- .../filter_fractal/filter_fractal.h | 16 ++++++++-------- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/meshlabplugins/filter_fractal/craters_utils.h b/src/meshlabplugins/filter_fractal/craters_utils.h index a1d903be9..88bd1a7bb 100644 --- a/src/meshlabplugins/filter_fractal/craters_utils.h +++ b/src/meshlabplugins/filter_fractal/craters_utils.h @@ -195,7 +195,7 @@ public: f = fl.back(); fl.pop_back(); - if(!f->IsV()) + if((f != NULL) && (!f->IsV())) { f->SetV(); if(vcg::IntersectionSphereTriangle diff --git a/src/meshlabplugins/filter_fractal/filter_fractal.cpp b/src/meshlabplugins/filter_fractal/filter_fractal.cpp index 1c7f725b9..4fc744e2a 100644 --- a/src/meshlabplugins/filter_fractal/filter_fractal.cpp +++ b/src/meshlabplugins/filter_fractal/filter_fractal.cpp @@ -223,7 +223,7 @@ bool FilterFractal::applyFilter(QAction* filter, MeshDocument &md, RichParameter CMeshO* samples = &(par.getMesh("samples_mesh")->cm); if (samples->face.size() > 0) { - errorMessage = "The sample layer selected is not a sample layer."; + errorMessage = "The sample layer selected should be a points cloud."; return false; } CMeshO* target = &(par.getMesh("target_mesh")->cm); @@ -295,6 +295,8 @@ int FilterFractal::postCondition(QAction *filter) const switch(ID(filter)) { case CR_FRACTAL_TERRAIN: + return MeshModel::MM_UNKNOWN; + break; case FP_FRACTAL_MESH: case FP_CRATERS: return MeshModel::MM_VERTCOORD | MeshModel::MM_VERTNORMAL | MeshModel::MM_FACENORMAL | MeshModel::MM_VERTQUALITY | MeshModel::MM_FACEFLAG; diff --git a/src/meshlabplugins/filter_fractal/filter_fractal.h b/src/meshlabplugins/filter_fractal/filter_fractal.h index e6a98abe2..f6dba99ce 100644 --- a/src/meshlabplugins/filter_fractal/filter_fractal.h +++ b/src/meshlabplugins/filter_fractal/filter_fractal.h @@ -40,17 +40,17 @@ public: FilterFractal(); ~FilterFractal(){} - virtual QString filterName(FilterIDType filter) const; - virtual QString filterInfo(FilterIDType filter) const; + QString filterName(FilterIDType filter) const; + QString filterInfo(FilterIDType filter) const; - virtual int getRequirements(QAction *); - virtual void initParameterSet(QAction*, MeshModel&, RichParameterSet &){assert(0);} - virtual void initParameterSet(QAction *, MeshDocument &, RichParameterSet &); + int getRequirements(QAction *); + void initParameterSet(QAction*, MeshModel&, RichParameterSet &){assert(0);} + void initParameterSet(QAction *, MeshDocument &, RichParameterSet &); - virtual bool applyFilter (QAction* filter, MeshDocument &md, RichParameterSet & par, vcg::CallBackPos *cb); + bool applyFilter (QAction* filter, MeshDocument &md, RichParameterSet & par, vcg::CallBackPos *cb); - virtual int postCondition(QAction *action) const; - virtual FilterClass getClass(QAction *); + int postCondition(QAction *action) const; + FilterClass getClass(QAction *); private: void initParameterSetForFractalDisplacement (QAction *, MeshDocument &, RichParameterSet &);