diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e86aae257..28f7057ac 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -130,7 +130,7 @@ else() # Filter plugins meshlabplugins/filter_sample meshlabplugins/filter_sample_dyn -# meshlabplugins/filter_createiso + meshlabplugins/filter_createiso # meshlabplugins/filter_geodesic # meshlabplugins/filter_sample_gpu # meshlabplugins/filter_ao diff --git a/src/meshlabplugins/filter_createiso/filter_createiso.cpp b/src/meshlabplugins/filter_createiso/filter_createiso.cpp index 17a327361..ac0009279 100644 --- a/src/meshlabplugins/filter_createiso/filter_createiso.cpp +++ b/src/meshlabplugins/filter_createiso/filter_createiso.cpp @@ -41,101 +41,101 @@ using namespace vcg; FilterCreateIso::FilterCreateIso() { - typeList << FP_CREATEISO; + typeList << FP_CREATEISO; - ActionIDType tt; - foreach(tt , types()) - actionList << new QAction(filterName(tt), this); + ActionIDType tt; + foreach(tt , types()) + actionList << new QAction(filterName(tt), this); } FilterCreateIso::~FilterCreateIso() { - for (int i = 0; i < actionList.count() ; i++ ) - delete actionList.at(i); + for (int i = 0; i < actionList.count() ; i++ ) + delete actionList.at(i); } QString FilterCreateIso::pluginName() const { - return "FilterCreateIso"; + return "FilterCreateIso"; } - QString FilterCreateIso::filterName(ActionIDType filter) const +QString FilterCreateIso::filterName(ActionIDType filter) const { - switch(filter) - { - case FP_CREATEISO : return QString("Noisy Isosurface"); - default: assert(0); - } - return QString("error!"); + switch(filter) + { + case FP_CREATEISO : return QString("Noisy Isosurface"); + default: assert(0); + } + return QString("error!"); } - QString FilterCreateIso::filterInfo(ActionIDType filterId) const +QString FilterCreateIso::filterInfo(ActionIDType filterId) const { - switch(filterId) - { - case FP_CREATEISO: return tr("Create a isosurface perturbed by a noisy isosurface."); - default: assert(0); - } - return QString("error!"); + switch(filterId) + { + case FP_CREATEISO: return tr("Create a isosurface perturbed by a noisy isosurface."); + default: assert(0); + } + return QString("error!"); } - FilterCreateIso::FilterClass FilterCreateIso::getClass(const QAction *a) const +FilterCreateIso::FilterClass FilterCreateIso::getClass(const QAction *a) const { - switch(ID(a)) - { - case FP_CREATEISO : return FilterPlugin::MeshCreation; - default : return FilterPlugin::Generic; - } + switch(ID(a)) + { + case FP_CREATEISO : return FilterPlugin::MeshCreation; + default : return FilterPlugin::Generic; + } } - int FilterCreateIso::getRequirements(const QAction *action) +int FilterCreateIso::getRequirements(const QAction *action) { - switch(ID(action)) - { - case FP_CREATEISO : return MeshModel::MM_NONE; - default: assert(0); - } - return 0; + switch(ID(action)) + { + case FP_CREATEISO : return MeshModel::MM_NONE; + default: assert(0); + } + return 0; } - bool FilterCreateIso::applyFilter(const QAction *filter, MeshDocument &md, std::map&, unsigned int& /*postConditionMask*/, const RichParameterList & par, vcg::CallBackPos * cb) - { - md.addNewMesh("",this->filterName(ID(filter))); - MeshModel &m=*(md.mm()); - if(filter->text() == filterName(FP_CREATEISO) ) - { - - SimpleVolume > volume; - - typedef vcg::tri::TrivialWalker > > MyWalker; - typedef vcg::tri::MarchingCubes MyMarchingCubes; - MyWalker walker; - - const int gridSize=par.getInt("Resolution"); - // Simple initialization of the volume with some cool perlin noise - volume.Init(Point3i(gridSize,gridSize,gridSize), Box3m(Point3m(0,0,0),Point3m(1,1,1))); - for(int i=0;i(m.cm, volume, mc, (gridSize*gridSize)/10,cb); - m.UpdateBoxAndNormals(); - } - return true; - } - void FilterCreateIso::initParameterList(const QAction *action,MeshModel & /*m*/, RichParameterList & parlst) +std::map FilterCreateIso::applyFilter(const QAction *filter, const RichParameterList & par, MeshDocument &md, unsigned int& /*postConditionMask*/, vcg::CallBackPos * cb) { - pair qualityRange; - switch(ID(action)) - { - case FP_CREATEISO : - parlst.addParam(RichInt("Resolution",64,"Grid Resolution","Resolution of the side of the cubic grid used for the volume creation")); - break; - default: break; // do not add any parameter for the other filters - } + if (ID(filter) == FP_CREATEISO) { + md.addNewMesh("",this->filterName(ID(filter))); + MeshModel &m=*(md.mm()); + SimpleVolume > volume; + + typedef vcg::tri::TrivialWalker > > MyWalker; + typedef vcg::tri::MarchingCubes MyMarchingCubes; + MyWalker walker; + + const int gridSize=par.getInt("Resolution"); + // Simple initialization of the volume with some cool perlin noise + volume.Init(Point3i(gridSize,gridSize,gridSize), Box3m(Point3m(0,0,0),Point3m(1,1,1))); + for(int i=0;i(m.cm, volume, mc, (gridSize*gridSize)/10,cb); + m.UpdateBoxAndNormals(); + } + else { + wrongActionCalled(filter); + } + return std::map(); +} +void FilterCreateIso::initParameterList(const QAction *action,MeshModel & /*m*/, RichParameterList & parlst) +{ + switch(ID(action)) + { + case FP_CREATEISO : + parlst.addParam(RichInt("Resolution",64,"Grid Resolution","Resolution of the side of the cubic grid used for the volume creation")); + break; + default: break; // do not add any parameter for the other filters + } } diff --git a/src/meshlabplugins/filter_createiso/filter_createiso.h b/src/meshlabplugins/filter_createiso/filter_createiso.h index 8422fc840..9b661efbd 100644 --- a/src/meshlabplugins/filter_createiso/filter_createiso.h +++ b/src/meshlabplugins/filter_createiso/filter_createiso.h @@ -42,29 +42,29 @@ class FilterCreateIso : public QObject, public FilterPlugin MESHLAB_PLUGIN_IID_EXPORTER(FILTER_PLUGIN_IID) Q_INTERFACES(FilterPlugin) -public: - /* naming convention : - - FP -> Filter Plugin - - name of the plugin separated by _ - */ - enum { - FP_CREATEISO, - } ; + public: + /* naming convention : + - FP -> Filter Plugin + - name of the plugin separated by _ + */ + enum { + FP_CREATEISO, + } ; - /* default values for standard parameters' values of the plugin actions */ - FilterCreateIso(); - ~FilterCreateIso(); + /* default values for standard parameters' values of the plugin actions */ + FilterCreateIso(); + ~FilterCreateIso(); - QString pluginName() const; - virtual QString filterName(ActionIDType filter) const; - virtual QString filterInfo(ActionIDType filter) const; + QString pluginName() const; + virtual QString filterName(ActionIDType filter) const; + virtual QString filterInfo(ActionIDType filter) const; - virtual FilterClass getClass(const QAction*) const; - virtual int getRequirements(const QAction*); - virtual void initParameterList(const QAction*, MeshModel &/*m*/, RichParameterList & /*parent*/); + virtual FilterClass getClass(const QAction*) const; + virtual int getRequirements(const QAction*); + virtual void initParameterList(const QAction*, MeshModel &/*m*/, RichParameterList & /*parent*/); - virtual bool applyFilter(const QAction* filter, MeshDocument &md, std::map& outputValues, unsigned int& postConditionMask, const RichParameterList & /*parent*/, vcg::CallBackPos * cb) ; - FILTER_ARITY filterArity(const QAction*) const {return NONE;} + std::map applyFilter(const QAction* action, const RichParameterList & /*parent*/, MeshDocument &md, unsigned int& postConditionMask, vcg::CallBackPos * cb); + FILTER_ARITY filterArity(const QAction*) const {return NONE;} };