From e4c83dea1e2f52e9fa27cc804e9eb7c0a02fcb4d Mon Sep 17 00:00:00 2001 From: alemuntoni Date: Fri, 21 May 2021 11:46:30 +0200 Subject: [PATCH] refactoring and cleanups --- src/common/plugins/interfaces/filter_plugin.h | 27 +++-- src/common/python/function_set.cpp | 3 +- src/meshlab/dialogs/filter_script_dialog.cpp | 3 +- src/meshlab/ml_std_par_dialog.cpp | 6 +- src/meshlabplugins/filter_ao/filter_ao.cpp | 13 ++- src/meshlabplugins/filter_ao/filter_ao.h | 2 +- .../filter_camera/filter_camera.cpp | 4 +- .../filter_camera/filter_camera.h | 2 +- .../filter_clean/cleanfilter.cpp | 4 +- src/meshlabplugins/filter_clean/cleanfilter.h | 10 +- .../filter_color_projection.cpp | 4 +- .../filter_color_projection.h | 2 +- .../filter_colorproc/filter_colorproc.cpp | 4 +- .../filter_colorproc/filter_colorproc.h | 2 +- .../filter_create/filter_create.cpp | 7 +- .../filter_create/filter_create.h | 2 +- .../filter_createiso/filter_createiso.cpp | 5 +- .../filter_createiso/filter_createiso.h | 10 +- src/meshlabplugins/filter_csg/filter_csg.cpp | 4 +- src/meshlabplugins/filter_csg/filter_csg.h | 10 +- .../filter_dirt/filter_dirt.cpp | 6 +- src/meshlabplugins/filter_dirt/filter_dirt.h | 2 +- .../filter_fractal/filter_fractal.cpp | 4 +- .../filter_fractal/filter_fractal.h | 2 +- .../filter_func/filter_func.cpp | 5 +- src/meshlabplugins/filter_func/filter_func.h | 10 +- .../filter_geodesic/filter_geodesic.cpp | 5 +- .../filter_geodesic/filter_geodesic.h | 2 +- .../filter_img_patch_param.cpp | 7 +- .../filter_img_patch_param.h | 13 +-- .../filter_isoparametrization.cpp | 5 +- .../filter_isoparametrization.h | 2 +- .../filter_layer/filter_layer.cpp | 4 +- .../filter_layer/filter_layer.h | 8 +- .../filter_measure/filter_measure.cpp | 4 +- .../filter_measure/filter_measure.h | 2 +- .../filter_meshing/meshfilter.cpp | 4 +- .../filter_meshing/meshfilter.h | 2 +- src/meshlabplugins/filter_mls/mlsplugin.cpp | 8 +- src/meshlabplugins/filter_mls/mlsplugin.h | 8 +- .../filter_mutualglobal.cpp | 4 +- .../filter_mutualglobal/filter_mutualglobal.h | 2 +- .../filter_mutualinfo/filter_mutualinfo.cpp | 4 +- .../filter_mutualinfo/filter_mutualinfo.h | 2 +- .../filter_plymc/filter_plymc.cpp | 4 +- .../filter_plymc/filter_plymc.h | 2 +- .../filter_qhull/filter_qhull.cpp | 4 +- .../filter_qhull/filter_qhull.h | 8 +- .../filter_quality/filterqualitymapper.cpp | 4 +- .../filter_quality/filterqualitymapper.h | 6 +- .../filter_sample/filter_sample.cpp | 4 +- .../filter_sample/filter_sample.h | 2 +- .../filter_sample_dyn/filter_sample_dyn.cpp | 4 +- .../filter_sample_dyn/filter_sample_dyn.h | 10 +- .../filter_sample_gpu/filter_sample_gpu.cpp | 6 +- .../filter_sample_gpu/filter_sample_gpu.h | 6 +- .../filter_sampling/filter_sampling.cpp | 4 +- .../filter_sampling/filter_sampling.h | 2 +- .../filter_screened_poisson.cpp | 7 +- .../filter_screened_poisson.h | 2 +- .../filter_sdfgpu/filter_sdfgpu.cpp | 4 +- .../filter_sdfgpu/filter_sdfgpu.h | 2 +- .../filter_select/meshselect.cpp | 8 +- src/meshlabplugins/filter_select/meshselect.h | 8 +- .../filter_sketchfab/filter_sketchfab.cpp | 4 +- .../filter_sketchfab/filter_sketchfab.h | 2 +- .../filter_ssynth/filter_ssynth.cpp | 5 +- .../filter_ssynth/filter_ssynth.h | 14 +-- .../filter_texture/filter_texture.cpp | 4 +- .../filter_texture/filter_texture.h | 2 +- .../filter_texture_defragmentation.cpp | 4 +- .../filter_texture_defragmentation.h | 17 +-- .../filter_trioptimize/filter_trioptimize.cpp | 4 +- .../filter_trioptimize/filter_trioptimize.h | 2 +- .../filter_unsharp/filter_unsharp.cpp | 4 +- .../filter_unsharp/filter_unsharp.h | 2 +- .../filter_voronoi/filter_voronoi.cpp | 108 +++++++++--------- .../filter_voronoi/filter_voronoi.h | 2 +- src/meshlabserver/mainserver.cpp | 3 +- 79 files changed, 290 insertions(+), 223 deletions(-) diff --git a/src/common/plugins/interfaces/filter_plugin.h b/src/common/plugins/interfaces/filter_plugin.h index ec0233239..e93914e9e 100644 --- a/src/common/plugins/interfaces/filter_plugin.h +++ b/src/common/plugins/interfaces/filter_plugin.h @@ -128,7 +128,7 @@ public: * to MeshModel::updateDataMask(...) */ virtual int getRequirements(const QAction*) { return MeshModel::MM_NONE; } - + /** * @brief This function should require true if the glContext is used by the * filter. Without this, the glContext will remain set to nullptr on non-GUI @@ -156,6 +156,20 @@ public: */ virtual int postCondition(const QAction*) const { return MeshModel::MM_ALL; } + /** + * @brief This function is called to initialized the list of parameters. + * If a filter does not need parameters, return an empty list and the framework + * will not create a dialog (unless for previewing) + */ + virtual RichParameterList initParameterList(const QAction*, const MeshModel &/*m*/) + { + return RichParameterList(); + } + virtual RichParameterList initParameterList(const QAction* filter, const MeshDocument &md) + { + return initParameterList(filter, *(md.mm())); + } + /** * @brief applies the selected filter with the already stabilished parameters * This function is called by the framework after getting values for the parameters specified in the \ref initParameterList @@ -198,17 +212,6 @@ public: */ virtual FilterArity filterArity(const QAction *act) const = 0; - /** - * @brief This function is called to initialized the list of parameters. - * it is always called. If a filter does not need parameter it leave it empty and the framework - * will not create a dialog (unless for previewing) - */ - virtual void initParameterList(const QAction*, const MeshModel &/*m*/, RichParameterList & /*par*/) {} - virtual void initParameterList(const QAction* filter, const MeshDocument &md, RichParameterList &par) - { - initParameterList(filter, *(md.mm()), par); - } - virtual QString filterInfo(const QAction* a) const { return this->filterInfo(ID(a)); } virtual QString filterName(const QAction* a) const { return this->filterName(ID(a)); } virtual QString pythonFilterName(const QAction* a) const {return this->pythonFilterName(ID(a)); } diff --git a/src/common/python/function_set.cpp b/src/common/python/function_set.cpp index d3a62b5cb..97a88b1b6 100644 --- a/src/common/python/function_set.cpp +++ b/src/common/python/function_set.cpp @@ -55,8 +55,7 @@ void pymeshlab::FunctionSet::loadFilterPlugin(FilterPlugin* fp) QString pythonFilterName = fp->pythonFilterName(act); Function f(pythonFilterName, originalFilterName, description); - RichParameterList rps; - fp->initParameterList(act, dummyMeshDocument, rps); + RichParameterList rps = fp->initParameterList(act, dummyMeshDocument); for (const RichParameter& rp : rps){ FunctionParameter par(rp); diff --git a/src/meshlab/dialogs/filter_script_dialog.cpp b/src/meshlab/dialogs/filter_script_dialog.cpp index a37470935..15238cfac 100644 --- a/src/meshlab/dialogs/filter_script_dialog.cpp +++ b/src/meshlab/dialogs/filter_script_dialog.cpp @@ -209,8 +209,7 @@ void FilterScriptDialog::editOldParameters( const int row ) //fill the parameter set with all the names and descriptions which are lost in the //filter script - RichParameterList newParameterSet; - iFilter->initParameterList(action, *(mainWindow->meshDoc()), newParameterSet); + RichParameterList newParameterSet = iFilter->initParameterList(action, *(mainWindow->meshDoc())); if(newParameterSet.size() == oldParameterSet.size()) { RichParameterList::iterator i = newParameterSet.begin(); diff --git a/src/meshlab/ml_std_par_dialog.cpp b/src/meshlab/ml_std_par_dialog.cpp index f14fcd851..6131a6eb3 100644 --- a/src/meshlab/ml_std_par_dialog.cpp +++ b/src/meshlab/ml_std_par_dialog.cpp @@ -33,13 +33,12 @@ bool MeshlabStdDialog::showAutoDialog(FilterPlugin *mfi, MeshModel *mm, MeshDocu curAction = action; curmfi = mfi; curmwi = mwi; - curParSet.clear(); prevParSet.clear(); curModel = mm; curMeshDoc = mdp; curgla = gla; - mfi->initParameterList(action, *mdp, curParSet); + curParSet = mfi->initParameterList(action, *mdp); curmask = mfi->postCondition(action); if (curParSet.isEmpty() && !isPreviewable()) return false; @@ -104,8 +103,7 @@ void MeshlabStdDialog::createFrame() // update the values of the widgets with the values in the paramlist; void MeshlabStdDialog::resetValues() { - curParSet.clear(); - curmfi->initParameterList(curAction, *curMeshDoc, curParSet); + curParSet = curmfi->initParameterList(curAction, *curMeshDoc); assert(qf); assert(qf->isVisible()); diff --git a/src/meshlabplugins/filter_ao/filter_ao.cpp b/src/meshlabplugins/filter_ao/filter_ao.cpp index 615fd987f..bf51531ab 100644 --- a/src/meshlabplugins/filter_ao/filter_ao.cpp +++ b/src/meshlabplugins/filter_ao/filter_ao.cpp @@ -123,10 +123,11 @@ FilterPlugin::FilterClass AmbientOcclusionPlugin::getClass(const QAction * /*fil //return MeshFilterInterface::FilterClass(MeshFilterInterface::FaceColoring | MeshFilterInterface::VertexColoring); }; -void AmbientOcclusionPlugin::initParameterList(const QAction *action, const MeshModel & /*m*/, RichParameterList &parlst) +RichParameterList AmbientOcclusionPlugin::initParameterList(const QAction *action, const MeshModel & /*m*/) { - switch(ID(action)) - { + RichParameterList parlst; + switch(ID(action)) + { case FP_AMBIENT_OCCLUSION: parlst.addParam(RichEnum("occMode", 0, QStringList() << "per-Vertex" << "per-Face (deprecated)", tr("Occlusion mode:"), tr("Occlusion may be calculated per-vertex or per-face, color and quality will be saved in the chosen component."))); parlst.addParam(RichFloat("dirBias",0,"Directional Bias [0..1]","The balance between a uniform and a directionally biased set of lighting direction
:" @@ -139,10 +140,12 @@ void AmbientOcclusionPlugin::initParameterList(const QAction *action, const Mesh parlst.addParam(RichBool("useGPU",AMBOCC_USEGPU_BY_DEFAULT,"Use GPU acceleration","Only works for per-vertex AO. In order to use GPU-Mode, your hardware must support FBOs, FP32 Textures and Shaders. Normally increases the performance by a factor of 4x-5x")); //parlst.addParam(RichBool("useVBO",AMBOCC_USEVBO_BY_DEFAULT,"Use VBO if supported","By using VBO, Meshlab loads all the vertex structure in the VRam, greatly increasing rendering speed (for both CPU and GPU mode). Disable it if problem occurs")); parlst.addParam(RichInt ("depthTexSize",AMBOCC_DEFAULT_TEXTURE_SIZE,"Depth texture size(should be 2^n)", "Defines the depth texture size used to compute occlusion from each point of view. Higher values means better accuracy usually with low impact on performance")); - break; + break; default: break; // do not add any parameter for the other filters - } + } + return parlst; } + std::map AmbientOcclusionPlugin::applyFilter(const QAction * filter, const RichParameterList & par, MeshDocument &md, unsigned int& /*postConditionMask*/, vcg::CallBackPos *cb) { if (ID(filter) == FP_AMBIENT_OCCLUSION) { diff --git a/src/meshlabplugins/filter_ao/filter_ao.h b/src/meshlabplugins/filter_ao/filter_ao.h index 4c7a8e7aa..48beeae25 100644 --- a/src/meshlabplugins/filter_ao/filter_ao.h +++ b/src/meshlabplugins/filter_ao/filter_ao.h @@ -76,7 +76,7 @@ public: bool requiresGLContext(const QAction* action) const; FilterClass getClass(const QAction* filter) const; - void initParameterList(const QAction*, const MeshModel &/*m*/, RichParameterList & /*parent*/); + RichParameterList initParameterList(const QAction*, const MeshModel &/*m*/); std::map applyFilter(const QAction* action, const RichParameterList & /*parent*/, MeshDocument &md, unsigned int& postConditionMask, vcg::CallBackPos * cb); void initTextures(void); void initGL(vcg::CallBackPos *cb,unsigned int numVertices); diff --git a/src/meshlabplugins/filter_camera/filter_camera.cpp b/src/meshlabplugins/filter_camera/filter_camera.cpp index 3a4204a12..3efd3d535 100644 --- a/src/meshlabplugins/filter_camera/filter_camera.cpp +++ b/src/meshlabplugins/filter_camera/filter_camera.cpp @@ -88,8 +88,9 @@ QString FilterCameraPlugin::filterInfo(ActionIDType filterId) const } // This function define the needed parameters for each filter. -void FilterCameraPlugin::initParameterList(const QAction *action, const MeshDocument &/*m*/, RichParameterList & parlst) +RichParameterList FilterCameraPlugin::initParameterList(const QAction *action, const MeshDocument &/*m*/) { + RichParameterList parlst; Shotm defShot; switch(ID(action)) { @@ -181,6 +182,7 @@ void FilterCameraPlugin::initParameterList(const QAction *action, const MeshDocu break; default: break; // do not add any parameter for the other filters } + return parlst; } // Core Function doing the actual mesh processing. diff --git a/src/meshlabplugins/filter_camera/filter_camera.h b/src/meshlabplugins/filter_camera/filter_camera.h index 507ba8fe5..cb268fb5a 100644 --- a/src/meshlabplugins/filter_camera/filter_camera.h +++ b/src/meshlabplugins/filter_camera/filter_camera.h @@ -51,7 +51,7 @@ public: virtual QString filterName(ActionIDType filter) const; virtual QString filterInfo(ActionIDType filter) const; virtual FilterClass getClass(const QAction*) const; - virtual void initParameterList(const QAction*, const MeshDocument &/*m*/, RichParameterList & /*parent*/); + virtual RichParameterList initParameterList(const QAction*, const MeshDocument &/*m*/); std::map applyFilter(const QAction* action, const RichParameterList & /*parent*/, MeshDocument &md, unsigned int& postConditionMask, vcg::CallBackPos * cb); FilterArity filterArity(const QAction* act) const; }; diff --git a/src/meshlabplugins/filter_clean/cleanfilter.cpp b/src/meshlabplugins/filter_clean/cleanfilter.cpp index 74fe0d3a4..b0023a025 100644 --- a/src/meshlabplugins/filter_clean/cleanfilter.cpp +++ b/src/meshlabplugins/filter_clean/cleanfilter.cpp @@ -223,8 +223,9 @@ int CleanFilter::postCondition(const QAction* action) const return MeshModel::MM_ALL; } -void CleanFilter::initParameterList(const QAction *action, const MeshDocument &md, RichParameterList & parlst) +RichParameterList CleanFilter::initParameterList(const QAction *action, const MeshDocument &md) { + RichParameterList parlst; pair qualityRange; switch(ID(action)) { @@ -268,6 +269,7 @@ void CleanFilter::initParameterList(const QAction *action, const MeshDocument &m break; default: break; // do not add any parameter for the other filters } + return parlst; } std::map CleanFilter::applyFilter(const QAction *filter, const RichParameterList & par, MeshDocument &md, unsigned int& postConditionMask, vcg::CallBackPos * cb) diff --git a/src/meshlabplugins/filter_clean/cleanfilter.h b/src/meshlabplugins/filter_clean/cleanfilter.h index 8b2b2557e..58d522b36 100644 --- a/src/meshlabplugins/filter_clean/cleanfilter.h +++ b/src/meshlabplugins/filter_clean/cleanfilter.h @@ -64,14 +64,14 @@ class CleanFilter : public QObject, public FilterPlugin ~CleanFilter(); QString pluginName() const; - virtual QString filterName(ActionIDType filter) const; - virtual QString filterInfo(ActionIDType filter) const; + QString filterName(ActionIDType filter) const; + QString filterInfo(ActionIDType filter) const; - virtual FilterClass getClass(const QAction*) const; - virtual int getRequirements(const QAction*); + FilterClass getClass(const QAction*) const; + int getRequirements(const QAction*); int postCondition(const QAction* ) const; int getPreConditions(const QAction *) const { return MeshModel::MM_NONE; } - virtual void initParameterList(const QAction*, const MeshDocument &/*m*/, RichParameterList & /*parent*/); + RichParameterList initParameterList(const QAction*, const MeshDocument &/*m*/); std::map applyFilter(const QAction* action, const RichParameterList & /*parent*/, MeshDocument &md, unsigned int& postConditionMask, vcg::CallBackPos * cb); FilterArity filterArity(const QAction *) const {return SINGLE_MESH;} }; diff --git a/src/meshlabplugins/filter_color_projection/filter_color_projection.cpp b/src/meshlabplugins/filter_color_projection/filter_color_projection.cpp index 59e077e3c..03e4767cf 100644 --- a/src/meshlabplugins/filter_color_projection/filter_color_projection.cpp +++ b/src/meshlabplugins/filter_color_projection/filter_color_projection.cpp @@ -122,8 +122,9 @@ bool FilterColorProjectionPlugin::requiresGLContext(const QAction* action) const // This function define the needed parameters for each filter. -void FilterColorProjectionPlugin::initParameterList(const QAction *action, const MeshDocument &md, RichParameterList & parlst) +RichParameterList FilterColorProjectionPlugin::initParameterList(const QAction *action, const MeshDocument &md) { + RichParameterList parlst; switch(ID(action)) { case FP_SINGLEIMAGEPROJ : @@ -229,6 +230,7 @@ void FilterColorProjectionPlugin::initParameterList(const QAction *action, const default: break; // do not add any parameter for the other filters } + return parlst; } // Core Function doing the actual mesh processing. diff --git a/src/meshlabplugins/filter_color_projection/filter_color_projection.h b/src/meshlabplugins/filter_color_projection/filter_color_projection.h index 7baa55a7d..0643990c7 100644 --- a/src/meshlabplugins/filter_color_projection/filter_color_projection.h +++ b/src/meshlabplugins/filter_color_projection/filter_color_projection.h @@ -44,7 +44,7 @@ class FilterColorProjectionPlugin : public QObject, public FilterPlugin int postCondition( const QAction* ) const; FilterClass getClass(const QAction*) const; - void initParameterList(const QAction*, const MeshDocument &/*m*/, RichParameterList & /*parent*/); + RichParameterList initParameterList(const QAction*, const MeshDocument &/*m*/); int getRequirements(const QAction*); bool requiresGLContext(const QAction* action) const; std::map applyFilter(const QAction* action, const RichParameterList & /*parent*/, MeshDocument &md, unsigned int& postConditionMask, vcg::CallBackPos * cb); diff --git a/src/meshlabplugins/filter_colorproc/filter_colorproc.cpp b/src/meshlabplugins/filter_colorproc/filter_colorproc.cpp index d9cc0d350..9530ecf0a 100644 --- a/src/meshlabplugins/filter_colorproc/filter_colorproc.cpp +++ b/src/meshlabplugins/filter_colorproc/filter_colorproc.cpp @@ -189,8 +189,9 @@ int FilterColorProc::getRequirements(const QAction *action) assert(0); } -void FilterColorProc::initParameterList(const QAction *a, const MeshDocument& md, RichParameterList & par) +RichParameterList FilterColorProc::initParameterList(const QAction *a, const MeshDocument& md) { + RichParameterList par; switch(ID(a)) { case CP_FILLING: @@ -380,6 +381,7 @@ void FilterColorProc::initParameterList(const QAction *a, const MeshDocument& md default: break; // do not add any parameter for the other filters } + return par; } std::map FilterColorProc::applyFilter(const QAction *filter, const RichParameterList &par, MeshDocument &md, unsigned int& /*postConditionMask*/, vcg::CallBackPos *cb) diff --git a/src/meshlabplugins/filter_colorproc/filter_colorproc.h b/src/meshlabplugins/filter_colorproc/filter_colorproc.h index 7d3da5f14..7334eefa0 100644 --- a/src/meshlabplugins/filter_colorproc/filter_colorproc.h +++ b/src/meshlabplugins/filter_colorproc/filter_colorproc.h @@ -77,7 +77,7 @@ public: virtual int getRequirements(const QAction*); - virtual void initParameterList(const QAction*, const MeshDocument&, RichParameterList & /*parent*/); + virtual RichParameterList initParameterList(const QAction*, const MeshDocument&); std::map applyFilter(const QAction* action, const RichParameterList & /*parent*/, MeshDocument &md, unsigned int& postConditionMask, vcg::CallBackPos * cb); int postCondition(const QAction* filter) const; int getPreConditions(const QAction *) const; diff --git a/src/meshlabplugins/filter_create/filter_create.cpp b/src/meshlabplugins/filter_create/filter_create.cpp index ddbc0f26b..d6f1762fd 100644 --- a/src/meshlabplugins/filter_create/filter_create.cpp +++ b/src/meshlabplugins/filter_create/filter_create.cpp @@ -108,8 +108,9 @@ QString FilterCreate::filterInfo(ActionIDType filterId) const // - the string shown in the dialog // - the default value // - a possibly long string describing the meaning of that parameter (shown as a popup help in the dialog) -void FilterCreate::initParameterList(const QAction *action, const MeshModel & /*m*/, RichParameterList & parlst) +RichParameterList FilterCreate::initParameterList(const QAction *action, const MeshModel & /*m*/) { + RichParameterList parlst; switch(ID(action)) { case CR_SPHERE : @@ -172,8 +173,10 @@ void FilterCreate::initParameterList(const QAction *action, const MeshModel & /* "-- Parallel: The fitting plane will be oriented with a side parallel with the chosen plane. WARNING: do not use if the selection is exactly parallel to a plane.
" ))); break; - default : return; + default : + assert(0); } + return parlst; } // The Real Core Function doing the actual mesh processing. diff --git a/src/meshlabplugins/filter_create/filter_create.h b/src/meshlabplugins/filter_create/filter_create.h index 37386cba0..5993b77cb 100644 --- a/src/meshlabplugins/filter_create/filter_create.h +++ b/src/meshlabplugins/filter_create/filter_create.h @@ -53,7 +53,7 @@ public: QString filterName(ActionIDType filter) const; QString filterInfo(ActionIDType filter) const; FilterClass getClass(const QAction*) const; - void initParameterList(const QAction*, const MeshModel &/*m*/, RichParameterList & /*parent*/); + RichParameterList initParameterList(const QAction*, const MeshModel &/*m*/); std::map applyFilter(const QAction* action, const RichParameterList & /*parent*/, MeshDocument &md, unsigned int& postConditionMask, vcg::CallBackPos * cb); QString filterScriptFunctionName(ActionIDType filterID); FilterArity filterArity(const QAction *) const {return NONE;} diff --git a/src/meshlabplugins/filter_createiso/filter_createiso.cpp b/src/meshlabplugins/filter_createiso/filter_createiso.cpp index 42945ac2d..8fcd16eb8 100644 --- a/src/meshlabplugins/filter_createiso/filter_createiso.cpp +++ b/src/meshlabplugins/filter_createiso/filter_createiso.cpp @@ -124,8 +124,10 @@ std::map FilterCreateIso::applyFilter(const QAction *filt } return std::map(); } -void FilterCreateIso::initParameterList(const QAction *action, const MeshModel & /*m*/, RichParameterList & parlst) + +RichParameterList FilterCreateIso::initParameterList(const QAction *action, const MeshModel & /*m*/) { + RichParameterList parlst; switch(ID(action)) { case FP_CREATEISO : @@ -133,6 +135,7 @@ void FilterCreateIso::initParameterList(const QAction *action, const MeshModel & break; default: break; // do not add any parameter for the other filters } + return parlst; } diff --git a/src/meshlabplugins/filter_createiso/filter_createiso.h b/src/meshlabplugins/filter_createiso/filter_createiso.h index ea718fe66..a475b59b6 100644 --- a/src/meshlabplugins/filter_createiso/filter_createiso.h +++ b/src/meshlabplugins/filter_createiso/filter_createiso.h @@ -56,12 +56,12 @@ class FilterCreateIso : public QObject, public FilterPlugin ~FilterCreateIso(); QString pluginName() const; - virtual QString filterName(ActionIDType filter) const; - virtual QString filterInfo(ActionIDType filter) const; + QString filterName(ActionIDType filter) const; + QString filterInfo(ActionIDType filter) const; - virtual FilterClass getClass(const QAction*) const; - virtual int getRequirements(const QAction*); - virtual void initParameterList(const QAction*, const MeshModel &/*m*/, RichParameterList & /*parent*/); + FilterClass getClass(const QAction*) const; + int getRequirements(const QAction*); + RichParameterList initParameterList(const QAction*, const MeshModel &/*m*/); std::map applyFilter(const QAction* action, const RichParameterList & /*parent*/, MeshDocument &md, unsigned int& postConditionMask, vcg::CallBackPos * cb); FilterArity filterArity(const QAction*) const {return NONE;} diff --git a/src/meshlabplugins/filter_csg/filter_csg.cpp b/src/meshlabplugins/filter_csg/filter_csg.cpp index bbf4f66d4..05f15665a 100644 --- a/src/meshlabplugins/filter_csg/filter_csg.cpp +++ b/src/meshlabplugins/filter_csg/filter_csg.cpp @@ -74,8 +74,9 @@ QString FilterCSG::filterInfo(ActionIDType filterId) const } } -void FilterCSG::initParameterList(const QAction *action, const MeshDocument & md, RichParameterList & parlst) +RichParameterList FilterCSG::initParameterList(const QAction *action, const MeshDocument & md) { + RichParameterList parlst; switch (ID(action)) { case FP_CSG: { @@ -114,6 +115,7 @@ void FilterCSG::initParameterList(const QAction *action, const MeshDocument & md default: assert(0); } + return parlst; } std::map FilterCSG::applyFilter(const QAction *filter, const RichParameterList & par, MeshDocument &md, unsigned int& /*postConditionMask*/, vcg::CallBackPos *cb) diff --git a/src/meshlabplugins/filter_csg/filter_csg.h b/src/meshlabplugins/filter_csg/filter_csg.h index 49223eba4..536ec2545 100644 --- a/src/meshlabplugins/filter_csg/filter_csg.h +++ b/src/meshlabplugins/filter_csg/filter_csg.h @@ -53,16 +53,16 @@ public: ~FilterCSG() {}; QString pluginName() const; - virtual QString filterName(ActionIDType filter) const; - virtual QString filterInfo(ActionIDType filter) const; + QString filterName(ActionIDType filter) const; + QString filterInfo(ActionIDType filter) const; - virtual bool autoDialog(QAction *) { return true; } + bool autoDialog(QAction *) { return true; } - virtual void initParameterList(const QAction*, const MeshDocument &, RichParameterList &); + RichParameterList initParameterList(const QAction*, const MeshDocument &); std::map applyFilter(const QAction* action, const RichParameterList & /*parent*/, MeshDocument &md, unsigned int& postConditionMask, vcg::CallBackPos * cb); - virtual FilterClass getClass(const QAction *) const { return FilterPlugin::FilterClass( FilterPlugin::Layer + FilterPlugin::Remeshing ); } + FilterClass getClass(const QAction *) const { return FilterPlugin::FilterClass( FilterPlugin::Layer + FilterPlugin::Remeshing ); } FilterArity filterArity(const QAction*) const {return FIXED;} }; diff --git a/src/meshlabplugins/filter_dirt/filter_dirt.cpp b/src/meshlabplugins/filter_dirt/filter_dirt.cpp index cc3f3888e..0aa73c356 100644 --- a/src/meshlabplugins/filter_dirt/filter_dirt.cpp +++ b/src/meshlabplugins/filter_dirt/filter_dirt.cpp @@ -99,8 +99,9 @@ QString FilterDirt::filterInfo(ActionIDType filterId) const } } -void FilterDirt::initParameterList(const QAction* filter, const MeshDocument & /*md*/, RichParameterList &par){ - +RichParameterList FilterDirt::initParameterList(const QAction* filter, const MeshDocument & /*md*/) +{ + RichParameterList par; switch(ID(filter)){ case FP_DIRT:{ @@ -126,6 +127,7 @@ void FilterDirt::initParameterList(const QAction* filter, const MeshDocument & / break; } } + return par; } int FilterDirt::getRequirements(const QAction * /*action*/) diff --git a/src/meshlabplugins/filter_dirt/filter_dirt.h b/src/meshlabplugins/filter_dirt/filter_dirt.h index eb337ed6e..d3a4467af 100644 --- a/src/meshlabplugins/filter_dirt/filter_dirt.h +++ b/src/meshlabplugins/filter_dirt/filter_dirt.h @@ -64,7 +64,7 @@ public: virtual int getRequirements(const QAction*); virtual bool autoDialog(QAction *) {return true;} // virtual void initParameterSet(QAction* filter,MeshModel &,RichParameterSet &){}; - virtual void initParameterList(const QAction*, const MeshDocument &/*m*/, RichParameterList & /*parent*/); + RichParameterList initParameterList(const QAction*, const MeshDocument &/*m*/); std::map applyFilter(const QAction* action, const RichParameterList & /*parent*/, MeshDocument &md, unsigned int& postConditionMask, vcg::CallBackPos * cb); virtual int postCondition(const QAction*) const; virtual FilterClass getClass (const QAction *) const; diff --git a/src/meshlabplugins/filter_fractal/filter_fractal.cpp b/src/meshlabplugins/filter_fractal/filter_fractal.cpp index 9a7bf42a2..dc40dd47d 100644 --- a/src/meshlabplugins/filter_fractal/filter_fractal.cpp +++ b/src/meshlabplugins/filter_fractal/filter_fractal.cpp @@ -169,8 +169,9 @@ QString FilterFractal::filterInfo(ActionIDType filterId) const return description; } -void FilterFractal::initParameterList(const QAction* filter, const MeshDocument &md, RichParameterList &par) +RichParameterList FilterFractal::initParameterList(const QAction* filter, const MeshDocument &md) { + RichParameterList par; switch(ID(filter)) { case CR_FRACTAL_TERRAIN: @@ -181,6 +182,7 @@ void FilterFractal::initParameterList(const QAction* filter, const MeshDocument initParameterSetForCratersGeneration(md, par); break; } + return par; } void FilterFractal::initParameterSetForFractalDisplacement(const QAction *filter, const MeshDocument &md, RichParameterList &par) diff --git a/src/meshlabplugins/filter_fractal/filter_fractal.h b/src/meshlabplugins/filter_fractal/filter_fractal.h index af87270c4..18535ce42 100644 --- a/src/meshlabplugins/filter_fractal/filter_fractal.h +++ b/src/meshlabplugins/filter_fractal/filter_fractal.h @@ -46,7 +46,7 @@ class FilterFractal : public QObject, public FilterPlugin QString filterInfo(ActionIDType filter) const; int getRequirements(const QAction*); - void initParameterList(const QAction*, const MeshDocument &, RichParameterList &); + RichParameterList initParameterList(const QAction*, const MeshDocument &); std::map applyFilter(const QAction* action, const RichParameterList & /*parent*/, MeshDocument &md, unsigned int& postConditionMask, vcg::CallBackPos * cb); int postCondition(const QAction *action) const; diff --git a/src/meshlabplugins/filter_func/filter_func.cpp b/src/meshlabplugins/filter_func/filter_func.cpp index bdd7e8976..f43d681cc 100644 --- a/src/meshlabplugins/filter_func/filter_func.cpp +++ b/src/meshlabplugins/filter_func/filter_func.cpp @@ -254,9 +254,9 @@ int FilterFunctionPlugin::getRequirements(const QAction *action) // - the string shown in the dialog // - the default value // - a possibly long string describing the meaning of that parameter (shown as a popup help in the dialog) -void FilterFunctionPlugin::initParameterList(const QAction *action,const MeshModel &m, RichParameterList & parlst) +RichParameterList FilterFunctionPlugin::initParameterList(const QAction *action,const MeshModel &) { - Q_UNUSED(m); + RichParameterList parlst; switch(ID(action)) { case FF_VERT_SELECTION : @@ -369,6 +369,7 @@ void FilterFunctionPlugin::initParameterList(const QAction *action,const MeshMod default: break; // do not add any parameter for the other filters } + return parlst; } // The Real Core Function doing the actual mesh processing. diff --git a/src/meshlabplugins/filter_func/filter_func.h b/src/meshlabplugins/filter_func/filter_func.h index 05f36be0f..9e5186dd2 100644 --- a/src/meshlabplugins/filter_func/filter_func.h +++ b/src/meshlabplugins/filter_func/filter_func.h @@ -76,11 +76,11 @@ public: ~FilterFunctionPlugin(); QString pluginName() const; - virtual QString filterName(ActionIDType filter) const; - virtual QString filterInfo(ActionIDType filter) const; - virtual FilterClass getClass(const QAction*) const; - virtual int postCondition(const QAction *action) const; - virtual void initParameterList(const QAction*, const MeshModel &/*m*/, RichParameterList & /*parent*/); + QString filterName(ActionIDType filter) const; + QString filterInfo(ActionIDType filter) const; + FilterClass getClass(const QAction*) const; + int postCondition(const QAction *action) const; + RichParameterList initParameterList(const QAction*, const MeshModel &/*m*/); virtual int getRequirements(const QAction*); std::map applyFilter( const QAction* action, diff --git a/src/meshlabplugins/filter_geodesic/filter_geodesic.cpp b/src/meshlabplugins/filter_geodesic/filter_geodesic.cpp index d90f56bde..c77c43dad 100644 --- a/src/meshlabplugins/filter_geodesic/filter_geodesic.cpp +++ b/src/meshlabplugins/filter_geodesic/filter_geodesic.cpp @@ -232,8 +232,9 @@ std::map FilterGeodesic::applyFilter(const QAction *filte return std::map(); } -void FilterGeodesic::initParameterList(const QAction *action, const MeshModel &m, RichParameterList & parlst) +RichParameterList FilterGeodesic::initParameterList(const QAction *action, const MeshModel &m) { + RichParameterList parlst; switch(ID(action)) { case FP_QUALITY_POINT_GEODESIC : @@ -245,7 +246,7 @@ void FilterGeodesic::initParameterList(const QAction *action, const MeshModel &m break; default: break; // do not add any parameter for the other filters } - return; + return parlst; } int FilterGeodesic::postCondition(const QAction * filter) const diff --git a/src/meshlabplugins/filter_geodesic/filter_geodesic.h b/src/meshlabplugins/filter_geodesic/filter_geodesic.h index 4dd209fb3..207bc90c8 100644 --- a/src/meshlabplugins/filter_geodesic/filter_geodesic.h +++ b/src/meshlabplugins/filter_geodesic/filter_geodesic.h @@ -57,7 +57,7 @@ class FilterGeodesic : public QObject, public FilterPlugin FilterClass getClass(const QAction*) const; int getRequirements(const QAction*); std::map applyFilter(const QAction* action, const RichParameterList & /*parent*/, MeshDocument &md, unsigned int& postConditionMask, vcg::CallBackPos * cb); - void initParameterList(const QAction*, const MeshModel &/*m*/, RichParameterList & /*parent*/); + RichParameterList initParameterList(const QAction*, const MeshModel &/*m*/); int postCondition(const QAction * filter) const; FilterArity filterArity(const QAction*) const {return SINGLE_MESH;} }; diff --git a/src/meshlabplugins/filter_img_patch_param/filter_img_patch_param.cpp b/src/meshlabplugins/filter_img_patch_param/filter_img_patch_param.cpp index 2073f74b4..336b2a459 100644 --- a/src/meshlabplugins/filter_img_patch_param/filter_img_patch_param.cpp +++ b/src/meshlabplugins/filter_img_patch_param/filter_img_patch_param.cpp @@ -140,11 +140,11 @@ FilterPlugin::FilterClass FilterImgPatchParamPlugin::getClass(const QAction *act //} -void FilterImgPatchParamPlugin::initParameterList( +RichParameterList FilterImgPatchParamPlugin::initParameterList( const QAction *act, - const MeshDocument &/*md*/, - RichParameterList &par ) + const MeshDocument &/*md*/) { + RichParameterList par; switch( ID(act) ) { case FP_PATCH_PARAM_AND_TEXTURING: @@ -204,6 +204,7 @@ void FilterImgPatchParamPlugin::initParameterList( break; } } + return par; } diff --git a/src/meshlabplugins/filter_img_patch_param/filter_img_patch_param.h b/src/meshlabplugins/filter_img_patch_param/filter_img_patch_param.h index 64f255f44..b31a9fb56 100644 --- a/src/meshlabplugins/filter_img_patch_param/filter_img_patch_param.h +++ b/src/meshlabplugins/filter_img_patch_param/filter_img_patch_param.h @@ -109,17 +109,16 @@ public: ~FilterImgPatchParamPlugin(); QString pluginName() const; - virtual QString filterName( ActionIDType id ) const; - virtual QString filterInfo( ActionIDType id ) const; + QString filterName( ActionIDType id ) const; + QString filterInfo( ActionIDType id ) const; - virtual FilterClass getClass(const QAction* act ) const; + FilterClass getClass(const QAction* act ) const; - virtual void initParameterList( + RichParameterList initParameterList( const QAction* act, - const MeshDocument &md, - RichParameterList &par ); + const MeshDocument &md); - virtual int getRequirements(const QAction* act ); + int getRequirements(const QAction* act ); bool requiresGLContext(const QAction* action) const; //virtual int postCondition( QAction *act ) const; diff --git a/src/meshlabplugins/filter_isoparametrization/filter_isoparametrization.cpp b/src/meshlabplugins/filter_isoparametrization/filter_isoparametrization.cpp index 1c21f8d71..0b65ae554 100644 --- a/src/meshlabplugins/filter_isoparametrization/filter_isoparametrization.cpp +++ b/src/meshlabplugins/filter_isoparametrization/filter_isoparametrization.cpp @@ -99,9 +99,9 @@ int FilterIsoParametrization::getRequirements(const QAction *) return MeshModel::MM_NONE; } -void FilterIsoParametrization::initParameterList(const QAction *a, const MeshDocument& md, RichParameterList & par) +RichParameterList FilterIsoParametrization::initParameterList(const QAction *a, const MeshDocument& md) { - + RichParameterList par; switch(ID(a)) { case ISOP_PARAM: @@ -157,6 +157,7 @@ void FilterIsoParametrization::initParameterList(const QAction *a, const MeshDoc par.addParam(RichMesh ("targetMesh",md.mm()->id(),&md, "Target Mesh", "The mesh to be Isoparameterized")); } } + return par; } void FilterIsoParametrization::PrintStats(CMeshO *mesh) diff --git a/src/meshlabplugins/filter_isoparametrization/filter_isoparametrization.h b/src/meshlabplugins/filter_isoparametrization/filter_isoparametrization.h index 7f7766725..5c46c8aa9 100644 --- a/src/meshlabplugins/filter_isoparametrization/filter_isoparametrization.h +++ b/src/meshlabplugins/filter_isoparametrization/filter_isoparametrization.h @@ -54,7 +54,7 @@ public: virtual int getRequirements(const QAction*); - virtual void initParameterList(const QAction*, const MeshDocument&, RichParameterList & /*parent*/); + RichParameterList initParameterList(const QAction*, const MeshDocument&); std::map applyFilter( const QAction* action, const RichParameterList & parameters, diff --git a/src/meshlabplugins/filter_layer/filter_layer.cpp b/src/meshlabplugins/filter_layer/filter_layer.cpp index eb115d1dc..cdb44232a 100644 --- a/src/meshlabplugins/filter_layer/filter_layer.cpp +++ b/src/meshlabplugins/filter_layer/filter_layer.cpp @@ -116,8 +116,9 @@ QString FilterLayerPlugin::filterInfo(ActionIDType filterId) const } // This function define the needed parameters for each filter. -void FilterLayerPlugin::initParameterList(const QAction *action, const MeshDocument &md, RichParameterList & parlst) +RichParameterList FilterLayerPlugin::initParameterList(const QAction *action, const MeshDocument &md) { + RichParameterList parlst; const MeshModel *mm=md.mm(); const RasterModel *rm=md.rm(); switch(ID(action)) @@ -178,6 +179,7 @@ void FilterLayerPlugin::initParameterList(const QAction *action, const MeshDocum break; default: break; // do not add any parameter for the other filters } + return parlst; } // Core Function doing the actual mesh processing. diff --git a/src/meshlabplugins/filter_layer/filter_layer.h b/src/meshlabplugins/filter_layer/filter_layer.h index 9c0e44730..17e1ef666 100644 --- a/src/meshlabplugins/filter_layer/filter_layer.h +++ b/src/meshlabplugins/filter_layer/filter_layer.h @@ -56,10 +56,10 @@ public: FilterLayerPlugin(); QString pluginName() const; - virtual QString filterName(ActionIDType filter) const; - virtual QString filterInfo(ActionIDType filter) const; - virtual FilterClass getClass(const QAction*) const; - virtual void initParameterList(const QAction*, const MeshDocument &/*m*/, RichParameterList & /*parent*/); + QString filterName(ActionIDType filter) const; + QString filterInfo(ActionIDType filter) const; + FilterClass getClass(const QAction*) const; + RichParameterList initParameterList(const QAction*, const MeshDocument &/*m*/); std::map applyFilter( const QAction* action, const RichParameterList & parameters, diff --git a/src/meshlabplugins/filter_measure/filter_measure.cpp b/src/meshlabplugins/filter_measure/filter_measure.cpp index ea2f7fe06..f28b2ff95 100644 --- a/src/meshlabplugins/filter_measure/filter_measure.cpp +++ b/src/meshlabplugins/filter_measure/filter_measure.cpp @@ -155,8 +155,9 @@ int FilterMeasurePlugin::getPreConditions(const QAction* action) const } } -void FilterMeasurePlugin::initParameterList(const QAction *action, const MeshModel &m, RichParameterList & parlst) +RichParameterList FilterMeasurePlugin::initParameterList(const QAction *action, const MeshModel &m) { + RichParameterList parlst; switch (ID(action)) { case PER_VERTEX_QUALITY_HISTOGRAM: parlst.addParam(RichFloat("HistMin", vcg::tri::Stat::ComputePerVertexQualityMinMax(m.cm).first, "Hist Min", "The vertex are displaced of a vector whose norm is bounded by this value")); @@ -173,6 +174,7 @@ void FilterMeasurePlugin::initParameterList(const QAction *action, const MeshMod default: break; } + return parlst; } std::map FilterMeasurePlugin::applyFilter( diff --git a/src/meshlabplugins/filter_measure/filter_measure.h b/src/meshlabplugins/filter_measure/filter_measure.h index bee2d96f0..816a94eb0 100644 --- a/src/meshlabplugins/filter_measure/filter_measure.h +++ b/src/meshlabplugins/filter_measure/filter_measure.h @@ -53,7 +53,7 @@ public: FilterClass getClass(const QAction*) const; FilterArity filterArity(const QAction*) const; int getPreConditions(const QAction *action) const; - void initParameterList(const QAction* , const MeshModel& m, RichParameterList& parlst); + RichParameterList initParameterList(const QAction* , const MeshModel& m); std::map applyFilter( const QAction* action, const RichParameterList & parameters, diff --git a/src/meshlabplugins/filter_meshing/meshfilter.cpp b/src/meshlabplugins/filter_meshing/meshfilter.cpp index ac5413d15..7cda0211d 100644 --- a/src/meshlabplugins/filter_meshing/meshfilter.cpp +++ b/src/meshlabplugins/filter_meshing/meshfilter.cpp @@ -350,8 +350,9 @@ QString ExtraMeshFilterPlugin::filterInfo(ActionIDType filterID) const // return // true if has some parameters // false is has no params -void ExtraMeshFilterPlugin::initParameterList(const QAction * action, const MeshModel & m, RichParameterList & parlst) +RichParameterList ExtraMeshFilterPlugin::initParameterList(const QAction * action, const MeshModel & m) { + RichParameterList parlst; float maxVal; QStringList curvCalcMethods; QStringList curvColorMethods; @@ -642,6 +643,7 @@ void ExtraMeshFilterPlugin::initParameterList(const QAction * action, const Mesh default: break; } + return parlst; } diff --git a/src/meshlabplugins/filter_meshing/meshfilter.h b/src/meshlabplugins/filter_meshing/meshfilter.h index f4956061a..35b642920 100644 --- a/src/meshlabplugins/filter_meshing/meshfilter.h +++ b/src/meshlabplugins/filter_meshing/meshfilter.h @@ -88,7 +88,7 @@ public: QString filterInfo(ActionIDType filter) const; FilterClass getClass(const QAction*) const; - void initParameterList(const QAction*, const MeshModel &/*m*/, RichParameterList & /*parent*/); + RichParameterList initParameterList(const QAction*, const MeshModel &/*m*/); std::map applyFilter( const QAction* action, const RichParameterList & parameters, diff --git a/src/meshlabplugins/filter_mls/mlsplugin.cpp b/src/meshlabplugins/filter_mls/mlsplugin.cpp index ab1daa68e..8712a3118 100644 --- a/src/meshlabplugins/filter_mls/mlsplugin.cpp +++ b/src/meshlabplugins/filter_mls/mlsplugin.cpp @@ -179,8 +179,9 @@ QString MlsPlugin::filterInfo(ActionIDType filterId) const // - the string shown in the dialog // - the default value // - a possibly long string describing the meaning of that parameter (shown as a popup help in the dialog) -void MlsPlugin::initParameterList(const QAction* action, const MeshDocument& md, RichParameterList& parlst) +RichParameterList MlsPlugin::initParameterList(const QAction* action, const MeshDocument& md) { + RichParameterList parlst; int id = ID(action); const MeshModel *target = md.mm(); @@ -195,7 +196,7 @@ void MlsPlugin::initParameterList(const QAction* action, const MeshDocument& md, false, "Select only non closed components", "")); - return; + return parlst; } else if (id == FP_RADIUS_FROM_DENSITY) { @@ -203,7 +204,7 @@ void MlsPlugin::initParameterList(const QAction* action, const MeshDocument& md, 16, "Number of neighbors", "Number of neighbors used to estimate the local density. Larger values lead to smoother variations.")); - return; + return parlst; } if ((id & _PROJECTION_)) @@ -313,6 +314,7 @@ void MlsPlugin::initParameterList(const QAction* action, const MeshDocument& md, "The resolution of the grid on which we run the marching cubes." "This marching cube is memory friendly, so you can safely set large values up to 1000 or even more.")); } + return parlst; } int MlsPlugin::getRequirements(const QAction *) diff --git a/src/meshlabplugins/filter_mls/mlsplugin.h b/src/meshlabplugins/filter_mls/mlsplugin.h index bdf384abc..a26632dee 100644 --- a/src/meshlabplugins/filter_mls/mlsplugin.h +++ b/src/meshlabplugins/filter_mls/mlsplugin.h @@ -63,11 +63,11 @@ public: MlsPlugin(); QString pluginName() const; - virtual QString filterName(ActionIDType filter) const; - virtual QString filterInfo(ActionIDType filter) const; + QString filterName(ActionIDType filter) const; + QString filterInfo(ActionIDType filter) const; FilterClass getClass(const QAction *a) const; - virtual void initParameterList(const QAction*, const MeshDocument &md, RichParameterList &parent); - virtual int getRequirements(const QAction* action); + RichParameterList initParameterList(const QAction*, const MeshDocument &md); + int getRequirements(const QAction* action); std::map applyFilter( const QAction* action, const RichParameterList & parameters, diff --git a/src/meshlabplugins/filter_mutualglobal/filter_mutualglobal.cpp b/src/meshlabplugins/filter_mutualglobal/filter_mutualglobal.cpp index 6043fb970..fd51198cf 100644 --- a/src/meshlabplugins/filter_mutualglobal/filter_mutualglobal.cpp +++ b/src/meshlabplugins/filter_mutualglobal/filter_mutualglobal.cpp @@ -114,8 +114,9 @@ bool FilterMutualGlobal::requiresGLContext(const QAction* action) const // - the string shown in the dialog // - the default value // - a possibly long string describing the meaning of that parameter (shown as a popup help in the dialog) -void FilterMutualGlobal::initParameterList(const QAction *action, const MeshDocument & md, RichParameterList & parlst) +RichParameterList FilterMutualGlobal::initParameterList(const QAction *action, const MeshDocument &) { + RichParameterList parlst; QStringList rendList; switch(ID(action)) { case FP_IMAGE_GLOBALIGN : @@ -167,6 +168,7 @@ void FilterMutualGlobal::initParameterList(const QAction *action, const MeshDocu default : assert(0); } + return parlst; } // The Real Core Function doing the actual mesh processing. diff --git a/src/meshlabplugins/filter_mutualglobal/filter_mutualglobal.h b/src/meshlabplugins/filter_mutualglobal/filter_mutualglobal.h index 0e2121076..40ac56b2d 100644 --- a/src/meshlabplugins/filter_mutualglobal/filter_mutualglobal.h +++ b/src/meshlabplugins/filter_mutualglobal/filter_mutualglobal.h @@ -54,7 +54,7 @@ public: QString filterName(ActionIDType filter) const; QString filterInfo(ActionIDType filter) const; - void initParameterList(const QAction*, const MeshDocument & md, RichParameterList & /*parent*/); + RichParameterList initParameterList(const QAction*, const MeshDocument & md); std::map applyFilter( const QAction* action, const RichParameterList & parameters, diff --git a/src/meshlabplugins/filter_mutualinfo/filter_mutualinfo.cpp b/src/meshlabplugins/filter_mutualinfo/filter_mutualinfo.cpp index 55c92121a..bd21c2715 100644 --- a/src/meshlabplugins/filter_mutualinfo/filter_mutualinfo.cpp +++ b/src/meshlabplugins/filter_mutualinfo/filter_mutualinfo.cpp @@ -96,8 +96,9 @@ FilterPlugin::FilterArity FilterMutualInfoPlugin::filterArity(const QAction*) co return SINGLE_MESH; } -void FilterMutualInfoPlugin::initParameterList(const QAction *action, const MeshDocument & /*md*/, RichParameterList & parlst) +RichParameterList FilterMutualInfoPlugin::initParameterList(const QAction *action, const MeshDocument & /*md*/) { + RichParameterList parlst; QStringList rendList; rendList.push_back("Combined"); rendList.push_back("Normal map"); @@ -119,6 +120,7 @@ void FilterMutualInfoPlugin::initParameterList(const QAction *action, const Mesh default : assert(0); } + return parlst; } std::map FilterMutualInfoPlugin::applyFilter( diff --git a/src/meshlabplugins/filter_mutualinfo/filter_mutualinfo.h b/src/meshlabplugins/filter_mutualinfo/filter_mutualinfo.h index a1ac8ef6e..d76ffe372 100644 --- a/src/meshlabplugins/filter_mutualinfo/filter_mutualinfo.h +++ b/src/meshlabplugins/filter_mutualinfo/filter_mutualinfo.h @@ -48,7 +48,7 @@ public: FilterClass getClass(const QAction* a) const; bool requiresGLContext(const QAction* action) const; FilterArity filterArity(const QAction*) const; - void initParameterList(const QAction*, const MeshDocument &, RichParameterList & /*parent*/); + RichParameterList initParameterList(const QAction*, const MeshDocument &); std::map applyFilter( const QAction* action, const RichParameterList & parameters, diff --git a/src/meshlabplugins/filter_plymc/filter_plymc.cpp b/src/meshlabplugins/filter_plymc/filter_plymc.cpp index 8a83c29be..5099b88c5 100644 --- a/src/meshlabplugins/filter_plymc/filter_plymc.cpp +++ b/src/meshlabplugins/filter_plymc/filter_plymc.cpp @@ -101,8 +101,9 @@ PlyMCPlugin::FilterClass PlyMCPlugin::getClass(const QAction *a) const // - the string shown in the dialog // - the default value // - a possibly long string describing the meaning of that parameter (shown as a popup help in the dialog) -void PlyMCPlugin::initParameterList(const QAction *action,const MeshModel &m, RichParameterList & parlst) +RichParameterList PlyMCPlugin::initParameterList(const QAction *action,const MeshModel &m) { + RichParameterList parlst; switch(ID(action)) { case FP_PLYMC : @@ -120,6 +121,7 @@ void PlyMCPlugin::initParameterList(const QAction *action,const MeshModel &m, Ri break; default: break; // do not add any parameter for the other filters } + return parlst; } // The Real Core Function doing the actual mesh processing. diff --git a/src/meshlabplugins/filter_plymc/filter_plymc.h b/src/meshlabplugins/filter_plymc/filter_plymc.h index eddbea174..aaaf8ec81 100644 --- a/src/meshlabplugins/filter_plymc/filter_plymc.h +++ b/src/meshlabplugins/filter_plymc/filter_plymc.h @@ -43,7 +43,7 @@ public: QString pluginName() const; virtual QString filterName(ActionIDType filter) const; virtual QString filterInfo(ActionIDType filter) const; - virtual void initParameterList(const QAction*, const MeshModel &/*m*/, RichParameterList & /*parent*/); + virtual RichParameterList initParameterList(const QAction*, const MeshModel &/*m*/); std::map applyFilter( const QAction* action, const RichParameterList & parameters, diff --git a/src/meshlabplugins/filter_qhull/filter_qhull.cpp b/src/meshlabplugins/filter_qhull/filter_qhull.cpp index f70e6f1a3..a1d53306e 100644 --- a/src/meshlabplugins/filter_qhull/filter_qhull.cpp +++ b/src/meshlabplugins/filter_qhull/filter_qhull.cpp @@ -135,8 +135,9 @@ QhullPlugin::FilterClass QhullPlugin::getClass(const QAction *a) const // - the string shown in the dialog // - the default value // - a possibly long string describing the meaning of that parameter (shown as a popup help in the dialog) -void QhullPlugin::initParameterList(const QAction *action,const MeshModel &m, RichParameterList & parlst) +RichParameterList QhullPlugin::initParameterList(const QAction *action,const MeshModel &m) { + RichParameterList parlst; switch(ID(action)) { case FP_QHULL_CONVEX_HULL : { @@ -195,6 +196,7 @@ void QhullPlugin::initParameterList(const QAction *action,const MeshModel &m, Ri } default: break; // do not add any parameter for the other filters } + return parlst; } // The Real Core Function doing the actual mesh processing. diff --git a/src/meshlabplugins/filter_qhull/filter_qhull.h b/src/meshlabplugins/filter_qhull/filter_qhull.h index 8a892bebf..5ed01bb3e 100644 --- a/src/meshlabplugins/filter_qhull/filter_qhull.h +++ b/src/meshlabplugins/filter_qhull/filter_qhull.h @@ -56,16 +56,16 @@ public: ~QhullPlugin(); QString pluginName() const; - virtual QString filterName(ActionIDType filter) const; - virtual QString filterInfo(ActionIDType filter) const; - virtual void initParameterList(const QAction*, const MeshModel &/*m*/, RichParameterList & /*parent*/); + QString filterName(ActionIDType filter) const; + QString filterInfo(ActionIDType filter) const; + RichParameterList initParameterList(const QAction*, const MeshModel &/*m*/); std::map applyFilter( const QAction* action, const RichParameterList & parameters, MeshDocument &md, unsigned int& postConditionMask, vcg::CallBackPos * cb); - virtual FilterClass getClass(const QAction*) const; + FilterClass getClass(const QAction*) const; FilterArity filterArity(const QAction *) const {return SINGLE_MESH;} }; diff --git a/src/meshlabplugins/filter_quality/filterqualitymapper.cpp b/src/meshlabplugins/filter_quality/filterqualitymapper.cpp index 193a9ef68..20cb85ce5 100644 --- a/src/meshlabplugins/filter_quality/filterqualitymapper.cpp +++ b/src/meshlabplugins/filter_quality/filterqualitymapper.cpp @@ -86,8 +86,9 @@ FilterPlugin::FilterClass QualityMapperFilter::getClass(const QAction *a) const // - the string shown in the dialog // - the default value // - a possibly long string describing the meaning of that parameter (shown as a popup help in the dialog) -void QualityMapperFilter::initParameterList(const QAction *action,const MeshModel &m, RichParameterList & parlst) +RichParameterList QualityMapperFilter::initParameterList(const QAction *action,const MeshModel &m) { + RichParameterList parlst; switch(ID(action)) { case FP_QUALITY_MAPPER : { @@ -121,6 +122,7 @@ void QualityMapperFilter::initParameterList(const QAction *action,const MeshMode break; default: break; // do not add any parameter for the other filters } + return parlst; } // The Real Core Function doing the actual mesh processing. diff --git a/src/meshlabplugins/filter_quality/filterqualitymapper.h b/src/meshlabplugins/filter_quality/filterqualitymapper.h index 3d9b0a3af..96d504758 100644 --- a/src/meshlabplugins/filter_quality/filterqualitymapper.h +++ b/src/meshlabplugins/filter_quality/filterqualitymapper.h @@ -70,11 +70,11 @@ public: QualityMapperFilter(); QString pluginName() const; - virtual QString filterName(ActionIDType filter) const; - virtual QString filterInfo(ActionIDType filter) const; + QString filterName(ActionIDType filter) const; + QString filterInfo(ActionIDType filter) const; int getPreConditions(const QAction *) const; int postCondition(const QAction* ) const; - virtual void initParameterList(const QAction*, const MeshModel &/*m*/, RichParameterList & /*parent*/); + RichParameterList initParameterList(const QAction*, const MeshModel &/*m*/); std::map applyFilter( const QAction* action, const RichParameterList & parameters, diff --git a/src/meshlabplugins/filter_sample/filter_sample.cpp b/src/meshlabplugins/filter_sample/filter_sample.cpp index 84fb615f1..52a1120c7 100644 --- a/src/meshlabplugins/filter_sample/filter_sample.cpp +++ b/src/meshlabplugins/filter_sample/filter_sample.cpp @@ -138,8 +138,9 @@ int FilterSamplePlugin::postCondition(const QAction*) const * @param m * @param parlst */ -void FilterSamplePlugin::initParameterList(const QAction *action,const MeshModel &m, RichParameterList & parlst) +RichParameterList FilterSamplePlugin::initParameterList(const QAction *action,const MeshModel &m) { + RichParameterList parlst; switch(ID(action)) { case FP_MOVE_VERTEX : parlst.addParam(RichBool ("UpdateNormals", true, "Recompute normals", "Toggle the recomputation of the normals after the random displacement.\n\nIf disabled the face normals will remains unchanged resulting in a visually pleasant effect.")); @@ -148,6 +149,7 @@ void FilterSamplePlugin::initParameterList(const QAction *action,const MeshModel default : assert(0); } + return parlst; } /** diff --git a/src/meshlabplugins/filter_sample/filter_sample.h b/src/meshlabplugins/filter_sample/filter_sample.h index 2419d178e..4aaa6e6ea 100644 --- a/src/meshlabplugins/filter_sample/filter_sample.h +++ b/src/meshlabplugins/filter_sample/filter_sample.h @@ -61,7 +61,7 @@ public: FilterArity filterArity(const QAction*) const; int getPreConditions(const QAction *) const; int postCondition(const QAction* ) const; - void initParameterList(const QAction*, const MeshModel &/*m*/, RichParameterList & /*parent*/); + RichParameterList initParameterList(const QAction*, const MeshModel &/*m*/); std::map applyFilter( const QAction* action, const RichParameterList & parameters, diff --git a/src/meshlabplugins/filter_sample_dyn/filter_sample_dyn.cpp b/src/meshlabplugins/filter_sample_dyn/filter_sample_dyn.cpp index ec7e487d6..ffa33eef8 100644 --- a/src/meshlabplugins/filter_sample_dyn/filter_sample_dyn.cpp +++ b/src/meshlabplugins/filter_sample_dyn/filter_sample_dyn.cpp @@ -96,8 +96,9 @@ FilterPlugin::FilterClass ExtraSampleDynPlugin::getClass(const QAction *) const // when the user press apply the current stored state is updated. // when the user press close the mesh state is restored to the one before the startup of the filter. -void ExtraSampleDynPlugin::initParameterList(const QAction *action,const MeshModel &/*m*/, RichParameterList & parlst) +RichParameterList ExtraSampleDynPlugin::initParameterList(const QAction *action,const MeshModel &/*m*/) { + RichParameterList parlst; switch(ID(action)) { case FP_VERTEX_COLOR_NOISE : parlst.addParam(RichColor ("baseColor", @@ -118,6 +119,7 @@ void ExtraSampleDynPlugin::initParameterList(const QAction *action,const MeshMod default: break; // do not add any parameter for the other filters } + return parlst; } // The Real Core Function doing the actual mesh processing. diff --git a/src/meshlabplugins/filter_sample_dyn/filter_sample_dyn.h b/src/meshlabplugins/filter_sample_dyn/filter_sample_dyn.h index 1d7b860bd..6b4f280f0 100644 --- a/src/meshlabplugins/filter_sample_dyn/filter_sample_dyn.h +++ b/src/meshlabplugins/filter_sample_dyn/filter_sample_dyn.h @@ -41,12 +41,12 @@ class ExtraSampleDynPlugin : public QObject, public FilterPlugin virtual ~ExtraSampleDynPlugin(); QString pluginName() const; - virtual QString filterName(ActionIDType filter) const; - virtual QString filterInfo(ActionIDType filter) const; - virtual void initParameterList(const QAction*, const MeshModel &/*m*/, RichParameterList & /*parent*/); - virtual int postCondition(const QAction* ) const {return MeshModel::MM_VERTCOLOR;}; + QString filterName(ActionIDType filter) const; + QString filterInfo(ActionIDType filter) const; + RichParameterList initParameterList(const QAction*, const MeshModel &/*m*/); + int postCondition(const QAction* ) const {return MeshModel::MM_VERTCOLOR;}; std::map applyFilter(const QAction* action, const RichParameterList & /*parent*/, MeshDocument &md, unsigned int& postConditionMask, vcg::CallBackPos * cb); - virtual FilterClass getClass(const QAction*) const; + FilterClass getClass(const QAction*) const; FilterArity filterArity(const QAction *) const {return SINGLE_MESH;} }; diff --git a/src/meshlabplugins/filter_sample_gpu/filter_sample_gpu.cpp b/src/meshlabplugins/filter_sample_gpu/filter_sample_gpu.cpp index 0e1070ce7..c34f6eb71 100644 --- a/src/meshlabplugins/filter_sample_gpu/filter_sample_gpu.cpp +++ b/src/meshlabplugins/filter_sample_gpu/filter_sample_gpu.cpp @@ -107,10 +107,9 @@ ExtraSampleGPUPlugin::FilterClass ExtraSampleGPUPlugin::getClass(const QAction * // - the string shown in the dialog // - the default value // - a possibly long string describing the meaning of that parameter (shown as a popup help in the dialog) -void ExtraSampleGPUPlugin::initParameterList(const QAction * action, const MeshModel & m, RichParameterList & parlst) +RichParameterList ExtraSampleGPUPlugin::initParameterList(const QAction * action, const MeshModel &) { - (void)m; - + RichParameterList parlst; switch(ID(action)) { case FP_GPU_EXAMPLE : @@ -124,6 +123,7 @@ void ExtraSampleGPUPlugin::initParameterList(const QAction * action, const MeshM } default : assert(0); } + return parlst; } // The Real Core Function doing the actual mesh processing. diff --git a/src/meshlabplugins/filter_sample_gpu/filter_sample_gpu.h b/src/meshlabplugins/filter_sample_gpu/filter_sample_gpu.h index 04cd0b762..8bf55534b 100644 --- a/src/meshlabplugins/filter_sample_gpu/filter_sample_gpu.h +++ b/src/meshlabplugins/filter_sample_gpu/filter_sample_gpu.h @@ -49,9 +49,9 @@ public: ExtraSampleGPUPlugin(); - QString pluginName() const; - FilterArity filterArity(const QAction *) const {return SINGLE_MESH;} - void initParameterList(const QAction* action, const MeshModel &m, RichParameterList & parlst); + QString pluginName() const; + FilterArity filterArity(const QAction *) const {return SINGLE_MESH;} + RichParameterList initParameterList(const QAction* action, const MeshModel &m); QString filterName(ActionIDType filter) const; QString pythonFilterName(ActionIDType filterId) const; diff --git a/src/meshlabplugins/filter_sampling/filter_sampling.cpp b/src/meshlabplugins/filter_sampling/filter_sampling.cpp index e24d1bde8..a8f0db2b3 100644 --- a/src/meshlabplugins/filter_sampling/filter_sampling.cpp +++ b/src/meshlabplugins/filter_sampling/filter_sampling.cpp @@ -462,8 +462,9 @@ int FilterDocSampling::getRequirements(const QAction *action) // - the string shown in the dialog // - the default value // - a possibly long string describing the meaning of that parameter (shown as a popup help in the dialog) -void FilterDocSampling::initParameterList(const QAction *action, const MeshDocument & md, RichParameterList & parlst) +RichParameterList FilterDocSampling::initParameterList(const QAction *action, const MeshDocument & md) { + RichParameterList parlst; switch(ID(action)) { case FP_MONTECARLO_SAMPLING : parlst.addParam(RichInt ("SampleNum", md.mm()->cm.vn, @@ -696,6 +697,7 @@ void FilterDocSampling::initParameterList(const QAction *action, const MeshDocum } break; default: break; // do not add any parameter for the other filters } + return parlst; } std::map FilterDocSampling::applyFilter( diff --git a/src/meshlabplugins/filter_sampling/filter_sampling.h b/src/meshlabplugins/filter_sampling/filter_sampling.h index 0e0e0b855..4cd61aeb4 100644 --- a/src/meshlabplugins/filter_sampling/filter_sampling.h +++ b/src/meshlabplugins/filter_sampling/filter_sampling.h @@ -54,7 +54,7 @@ public: QString pluginName() const; QString filterName(ActionIDType filter) const; QString filterInfo(ActionIDType filter) const; - void initParameterList(const QAction*, const MeshDocument &/*m*/, RichParameterList & /*parent*/); + RichParameterList initParameterList(const QAction*, const MeshDocument &/*m*/); std::map applyFilter( const QAction* action, const RichParameterList & parameters, diff --git a/src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.cpp b/src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.cpp index 7ac917a94..1d50eb63a 100644 --- a/src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.cpp +++ b/src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.cpp @@ -195,11 +195,11 @@ std::map FilterScreenedPoissonPlugin::applyFilter( return std::map(); } -void FilterScreenedPoissonPlugin::initParameterList( +RichParameterList FilterScreenedPoissonPlugin::initParameterList( const QAction* filter, - const MeshModel&, - RichParameterList& parlist) + const MeshModel&) { + RichParameterList parlist; if (ID(filter) == FP_SCREENED_POISSON) { parlist.addParam(RichBool("visibleLayer", false, "Merge all visible layers", "Enabling this flag means that all the visible layers will be used for providing the points.")); parlist.addParam(RichInt("depth", 8, "Reconstruction Depth", "This integer is the maximum depth of the tree that will be used for surface reconstruction. Running at depth d corresponds to solving on a voxel grid whose resolution is no larger than 2^d x 2^d x 2^d. Note that since the reconstructor adapts the octree to the sampling density, the specified reconstruction depth is only an upper bound. The default value for this parameter is 8.")); @@ -212,6 +212,7 @@ void FilterScreenedPoissonPlugin::initParameterList( parlist.addParam(RichBool("confidence", false, "Confidence Flag", "Enabling this flag tells the reconstructor to use the quality as confidence information; this is done by scaling the unit normals with the quality values. When the flag is not enabled, all normals are normalized to have unit-length prior to reconstruction.")); parlist.addParam(RichBool("preClean", false, "Pre-Clean", "Enabling this flag force a cleaning pre-pass on the data removing all unreferenced vertices or vertices with null normals.")); } + return parlist; } int FilterScreenedPoissonPlugin::postCondition(const QAction* filter) const diff --git a/src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.h b/src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.h index 52778fa67..1837dc759 100644 --- a/src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.h +++ b/src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.h @@ -54,7 +54,7 @@ public: unsigned int& postConditionMask, vcg::CallBackPos * cb); - void initParameterList(const QAction* a, const MeshModel&, RichParameterList& parlist); + RichParameterList initParameterList(const QAction* a, const MeshModel&); int postCondition(const QAction* filter) const; FilterArity filterArity(const QAction*) const; }; diff --git a/src/meshlabplugins/filter_sdfgpu/filter_sdfgpu.cpp b/src/meshlabplugins/filter_sdfgpu/filter_sdfgpu.cpp index 5d896744d..3eff92c86 100644 --- a/src/meshlabplugins/filter_sdfgpu/filter_sdfgpu.cpp +++ b/src/meshlabplugins/filter_sdfgpu/filter_sdfgpu.cpp @@ -39,8 +39,9 @@ QString SdfGpuPlugin::pluginName() const return "FilterSDFGPU"; } -void SdfGpuPlugin::initParameterList(const QAction *action, const MeshModel &/*m*/, RichParameterList &par) +RichParameterList SdfGpuPlugin::initParameterList(const QAction *action, const MeshModel &/*m*/) { + RichParameterList par; QStringList onPrimitive; onPrimitive.push_back("On vertices"); onPrimitive.push_back("On Faces"); par.addParam( RichEnum("onPrimitive", 0, onPrimitive, "Metric:", "Choose whether to trace rays from faces or from vertices. " )); @@ -92,6 +93,7 @@ void SdfGpuPlugin::initParameterList(const QAction *action, const MeshModel &/*m "For each ray that we trace, we take multiple depth values near the point of intersection and we output only the median of these values. " "Some mesh can benefit from this additional calculation. ")); } + return par; } QString SdfGpuPlugin::filterName(ActionIDType filterId) const diff --git a/src/meshlabplugins/filter_sdfgpu/filter_sdfgpu.h b/src/meshlabplugins/filter_sdfgpu/filter_sdfgpu.h index 0c9de7111..5e2c06904 100644 --- a/src/meshlabplugins/filter_sdfgpu/filter_sdfgpu.h +++ b/src/meshlabplugins/filter_sdfgpu/filter_sdfgpu.h @@ -47,7 +47,7 @@ class SdfGpuPlugin : public QObject, public FilterPlugin vcg::CallBackPos * cb); //Parameters init for user interface - virtual void initParameterList(const QAction* action, const MeshModel &m, RichParameterList &parlst); + RichParameterList initParameterList(const QAction* action, const MeshModel &m); //Draw the mesh void fillFrameBuffer(bool front, MeshModel* mm); diff --git a/src/meshlabplugins/filter_select/meshselect.cpp b/src/meshlabplugins/filter_select/meshselect.cpp index 2a5acba40..3da652493 100644 --- a/src/meshlabplugins/filter_select/meshselect.cpp +++ b/src/meshlabplugins/filter_select/meshselect.cpp @@ -192,10 +192,11 @@ QString SelectionFilterPlugin::filterInfo(ActionIDType filterId) const return QString("Unknown filter"); } -void SelectionFilterPlugin::initParameterList(const QAction *action, const MeshModel &m, RichParameterList &parlst) +RichParameterList SelectionFilterPlugin::initParameterList(const QAction *action, const MeshModel &m) { - switch(ID(action)) - { + RichParameterList parlst; + switch(ID(action)) + { case FP_SELECT_FACES_BY_EDGE: { float maxVal = m.cm.bbox.Diag()/2.0f; @@ -302,6 +303,7 @@ void SelectionFilterPlugin::initParameterList(const QAction *action, const MeshM parlst.addParam(RichBool("allLayers", false, "Apply to all visible Layers", "If selected, the filter will be applied to all visible mesh Layers.")); } break; } + return parlst; } std::map SelectionFilterPlugin::applyFilter( diff --git a/src/meshlabplugins/filter_select/meshselect.h b/src/meshlabplugins/filter_select/meshselect.h index ff9a37359..5b9611cd3 100644 --- a/src/meshlabplugins/filter_select/meshselect.h +++ b/src/meshlabplugins/filter_select/meshselect.h @@ -70,11 +70,11 @@ public: SelectionFilterPlugin(); //~SelectionFilterPlugin(); QString pluginName() const; - virtual QString filterInfo(ActionIDType filter) const; - virtual QString filterName(ActionIDType filter) const; + QString filterInfo(ActionIDType filter) const; + QString filterName(ActionIDType filter) const; - virtual FilterClass getClass(const QAction*) const; - void initParameterList(const QAction* action, const MeshModel &m, RichParameterList &parlst); + FilterClass getClass(const QAction*) const; + RichParameterList initParameterList(const QAction* action, const MeshModel &m); int getPreConditions(const QAction*) const; int postCondition(const QAction* ) const; int getRequirements(const QAction*); diff --git a/src/meshlabplugins/filter_sketchfab/filter_sketchfab.cpp b/src/meshlabplugins/filter_sketchfab/filter_sketchfab.cpp index 45c6b36dd..0f8c424ca 100644 --- a/src/meshlabplugins/filter_sketchfab/filter_sketchfab.cpp +++ b/src/meshlabplugins/filter_sketchfab/filter_sketchfab.cpp @@ -98,8 +98,9 @@ int FilterSketchFabPlugin::postCondition(const QAction*) const return MeshModel::MM_NONE; } -void FilterSketchFabPlugin::initParameterList(const QAction* action, const MeshModel&, RichParameterList& parlst) +RichParameterList FilterSketchFabPlugin::initParameterList(const QAction* action, const MeshModel&) { + RichParameterList parlst; QSettings settings; QVariant v = settings.value("SketchFab Code"); QString sketchFabAPIValue; @@ -123,6 +124,7 @@ void FilterSketchFabPlugin::initParameterList(const QAction* action, const MeshM default : assert(0); } + return parlst; } std::map FilterSketchFabPlugin::applyFilter( diff --git a/src/meshlabplugins/filter_sketchfab/filter_sketchfab.h b/src/meshlabplugins/filter_sketchfab/filter_sketchfab.h index 526f14259..25facde33 100644 --- a/src/meshlabplugins/filter_sketchfab/filter_sketchfab.h +++ b/src/meshlabplugins/filter_sketchfab/filter_sketchfab.h @@ -46,7 +46,7 @@ public: FilterArity filterArity(const QAction* a) const; int getPreConditions(const QAction*) const; int postCondition(const QAction* ) const; - void initParameterList(const QAction*, const MeshModel &/*m*/, RichParameterList & /*parent*/); + RichParameterList initParameterList(const QAction*, const MeshModel &/*m*/); std::map applyFilter( const QAction* action, const RichParameterList & parameters, diff --git a/src/meshlabplugins/filter_ssynth/filter_ssynth.cpp b/src/meshlabplugins/filter_ssynth/filter_ssynth.cpp index 69ac5fc9b..e1e7df797 100644 --- a/src/meshlabplugins/filter_ssynth/filter_ssynth.cpp +++ b/src/meshlabplugins/filter_ssynth/filter_ssynth.cpp @@ -57,12 +57,13 @@ QString FilterSSynth::filterInfo(ActionIDType filterId) const } } -void FilterSSynth::initParameterList(const QAction* /*filter*/,const MeshDocument &/*md*/, RichParameterList &par) +RichParameterList FilterSSynth::initParameterList(const QAction* /*filter*/,const MeshDocument &/*md*/) { + RichParameterList par; par.addParam(RichString("grammar","set maxdepth 40 R1 R2 rule R1 { { x 1 rz 6 ry 6 s 0.99 } R1 { s 2 } sphere } rule R2 {{ x -1 rz 6 ry 6 s 0.99 } R2 { s 2 } sphere} ","Eisen Script grammar","Write a grammar according to Eisen Script specification and using the primitives box, sphere, mesh, dot and triangle ")); par.addParam(RichInt("seed",1,"seed for random construction","Seed needed to build the mesh")); par.addParam(RichInt("sphereres",1,"set maximum resolution of sphere primitives, it must be included between 1 and 4","increasing the resolution of the spheres will improve the quality of the mesh ")); - return; + return par; } void FilterSSynth::openX3D(const QString &fileName, MeshModel &m, int& mask, vcg::CallBackPos *cb, QWidget* /*parent*/) diff --git a/src/meshlabplugins/filter_ssynth/filter_ssynth.h b/src/meshlabplugins/filter_ssynth/filter_ssynth.h index 1460e2100..f6f5701f4 100644 --- a/src/meshlabplugins/filter_ssynth/filter_ssynth.h +++ b/src/meshlabplugins/filter_ssynth/filter_ssynth.h @@ -40,24 +40,24 @@ class FilterSSynth : public QObject, public IOPlugin, public FilterPlugin{ FilterSSynth(); ~FilterSSynth(){} QString pluginName() const; - virtual QString filterName(ActionIDType filter) const; - virtual QString filterInfo(ActionIDType filter) const; - virtual int getRequirements(const QAction*); - virtual void initParameterList(const QAction*, const MeshDocument &/*m*/, RichParameterList & /*parent*/); + QString filterName(ActionIDType filter) const; + QString filterInfo(ActionIDType filter) const; + int getRequirements(const QAction*); + RichParameterList initParameterList(const QAction*, const MeshDocument &/*m*/); std::map applyFilter( const QAction* action, const RichParameterList & parameters, MeshDocument &md, unsigned int& postConditionMask, vcg::CallBackPos * cb); - virtual FilterClass getClass(const QAction* filter) const; + FilterClass getClass(const QAction* filter) const; void setAttributes(CMeshO::VertexIterator &vi, CMeshO &m); static void openX3D(const QString &fileName, MeshModel &m, int& mask, vcg::CallBackPos *cb, QWidget *parent=0); - virtual int postCondition(const QAction* filter) const; + int postCondition(const QAction* filter) const; std::list importFormats() const; std::list exportFormats() const; - virtual void exportMaskCapability(const QString &format, int &capability, int &defaultBits) const; + void exportMaskCapability(const QString &format, int &capability, int &defaultBits) const; void initPreOpenParameter(const QString &formatName, RichParameterList &parlst); void open(const QString &formatName, const QString &fileName, MeshModel &m, int& mask, const RichParameterList & par, vcg::CallBackPos *cb); void save(const QString &formatName, const QString &fileName, MeshModel &m, const int mask, const RichParameterList &, vcg::CallBackPos *cb); diff --git a/src/meshlabplugins/filter_texture/filter_texture.cpp b/src/meshlabplugins/filter_texture/filter_texture.cpp index 959f45d95..83e8c1a0f 100644 --- a/src/meshlabplugins/filter_texture/filter_texture.cpp +++ b/src/meshlabplugins/filter_texture/filter_texture.cpp @@ -196,8 +196,9 @@ static QString extractFilenameTexture(const MeshModel* mm) // - the string shown in the dialog // - the default value // - a possibly long string describing the meaning of that parameter (shown as a popup help in the dialog) -void FilterTexturePlugin::initParameterList(const QAction *action, const MeshDocument &md, RichParameterList & parlst) +RichParameterList FilterTexturePlugin::initParameterList(const QAction *action, const MeshDocument &md) { + RichParameterList parlst; const MeshModel* trg = md.mm(); for (const MeshModel* tmp : md.meshList){ if (tmp != trg && tmp != nullptr){ @@ -267,6 +268,7 @@ void FilterTexturePlugin::initParameterList(const QAction *action, const MeshDoc break; default: break; // do not add any parameter for the other filters } + return parlst; } diff --git a/src/meshlabplugins/filter_texture/filter_texture.h b/src/meshlabplugins/filter_texture/filter_texture.h index d3448c12e..7d0131f12 100644 --- a/src/meshlabplugins/filter_texture/filter_texture.h +++ b/src/meshlabplugins/filter_texture/filter_texture.h @@ -58,7 +58,7 @@ public: QString pluginName() const; virtual QString filterName(ActionIDType filter) const; virtual QString filterInfo(ActionIDType filter) const; - virtual void initParameterList(const QAction*, const MeshDocument &/*m*/, RichParameterList & /*parent*/); + virtual RichParameterList initParameterList(const QAction*, const MeshDocument &/*m*/); std::map applyFilter( const QAction* action, const RichParameterList & parameters, diff --git a/src/meshlabplugins/filter_texture_defragmentation/filter_texture_defragmentation.cpp b/src/meshlabplugins/filter_texture_defragmentation/filter_texture_defragmentation.cpp index d849e4559..be2a978cf 100644 --- a/src/meshlabplugins/filter_texture_defragmentation/filter_texture_defragmentation.cpp +++ b/src/meshlabplugins/filter_texture_defragmentation/filter_texture_defragmentation.cpp @@ -134,8 +134,9 @@ FilterTextureDefragPlugin::FilterClass FilterTextureDefragPlugin::getClass(const return FilterPlugin::Generic; } -void FilterTextureDefragPlugin::initParameterList(const QAction *action, const MeshDocument &md, RichParameterList & parlst) +RichParameterList FilterTextureDefragPlugin::initParameterList(const QAction *action, const MeshDocument &) { + RichParameterList parlst; switch (ID(action)) { case FP_TEXTURE_DEFRAG: parlst.addParam(RichFloat( @@ -174,6 +175,7 @@ void FilterTextureDefragPlugin::initParameterList(const QAction *action, const M default: break; } + return parlst; } // The Real Core Function doing the actual mesh processing. diff --git a/src/meshlabplugins/filter_texture_defragmentation/filter_texture_defragmentation.h b/src/meshlabplugins/filter_texture_defragmentation/filter_texture_defragmentation.h index 2ae29c4fa..82203bec8 100644 --- a/src/meshlabplugins/filter_texture_defragmentation/filter_texture_defragmentation.h +++ b/src/meshlabplugins/filter_texture_defragmentation/filter_texture_defragmentation.h @@ -49,14 +49,15 @@ class FilterTextureDefragPlugin : public QObject, public FilterPlugin FilterTextureDefragPlugin(); QString pluginName() const; - virtual QString filterName(ActionIDType filter) const; - virtual QString filterInfo(ActionIDType filter) const; - virtual void initParameterList(const QAction*, const MeshDocument &/*m*/, RichParameterList & /*parent*/); - std::map applyFilter(const QAction* action, - const RichParameterList & parameters, - MeshDocument &md, - unsigned int& postConditionMask, - vcg::CallBackPos * cb); + QString filterName(ActionIDType filter) const; + QString filterInfo(ActionIDType filter) const; + RichParameterList initParameterList(const QAction*, const MeshDocument &/*m*/); + std::map applyFilter( + const QAction* action, + const RichParameterList & parameters, + MeshDocument &md, + unsigned int& postConditionMask, + vcg::CallBackPos * cb); virtual int getRequirements(const QAction*); virtual int getPreConditions(const QAction*) const; virtual int postCondition(const QAction* ) const; diff --git a/src/meshlabplugins/filter_trioptimize/filter_trioptimize.cpp b/src/meshlabplugins/filter_trioptimize/filter_trioptimize.cpp index 4d12a1a2a..4ff5767dc 100644 --- a/src/meshlabplugins/filter_trioptimize/filter_trioptimize.cpp +++ b/src/meshlabplugins/filter_trioptimize/filter_trioptimize.cpp @@ -202,8 +202,9 @@ int TriOptimizePlugin::postCondition(const QAction *a) const // - the string shown in the dialog // - the default value // - a possibly long string describing the meaning of that parameter (shown as a popup help in the dialog) -void TriOptimizePlugin::initParameterList(const QAction *action, const MeshModel &m, RichParameterList & parlst) +RichParameterList TriOptimizePlugin::initParameterList(const QAction *action, const MeshModel &m) { + RichParameterList parlst; if (ID(action) == FP_CURVATURE_EDGE_FLIP) { parlst.addParam(RichBool("selection", m.cm.sfn > 0, tr("Update selection"), tr("Apply edge flip optimization on selected faces only"))); parlst.addParam(RichFloat("pthreshold", 1.0f, @@ -259,6 +260,7 @@ void TriOptimizePlugin::initParameterList(const QAction *action, const MeshModel parlst.addParam(RichFloat("AngleDeg", 0.5f, tr("Max Normal Dev (deg)"), tr("maximum mean normal angle displacement (degrees) from old to new faces"))); parlst.addParam(RichInt("iterations", 1, "Iterations", tr("number of laplacian smooth iterations in every run"))); } + return parlst; } // The Real Core Function doing the actual mesh processing. diff --git a/src/meshlabplugins/filter_trioptimize/filter_trioptimize.h b/src/meshlabplugins/filter_trioptimize/filter_trioptimize.h index 929698c09..ebca7bd83 100644 --- a/src/meshlabplugins/filter_trioptimize/filter_trioptimize.h +++ b/src/meshlabplugins/filter_trioptimize/filter_trioptimize.h @@ -47,7 +47,7 @@ public: QString pluginName() const; QString filterName(ActionIDType filter) const; QString filterInfo(ActionIDType filter) const; - void initParameterList(const QAction*, const MeshModel &/*m*/, RichParameterList & /*parent*/); + RichParameterList initParameterList(const QAction*, const MeshModel &/*m*/); std::map applyFilter( const QAction* action, const RichParameterList & parameters, diff --git a/src/meshlabplugins/filter_unsharp/filter_unsharp.cpp b/src/meshlabplugins/filter_unsharp/filter_unsharp.cpp index 6045092e0..53c2e174e 100644 --- a/src/meshlabplugins/filter_unsharp/filter_unsharp.cpp +++ b/src/meshlabplugins/filter_unsharp/filter_unsharp.cpp @@ -312,8 +312,9 @@ int FilterUnsharp::postCondition(const QAction *a) const return MeshModel::MM_NONE; } -void FilterUnsharp::initParameterList(const QAction *action, const MeshDocument &md, RichParameterList & parlst) +RichParameterList FilterUnsharp::initParameterList(const QAction *action, const MeshDocument &md) { + RichParameterList parlst; switch(ID(action)) { case FP_RECOMPUTE_VERTEX_NORMAL : @@ -403,6 +404,7 @@ void FilterUnsharp::initParameterList(const QAction *action, const MeshDocument parlst.addParam(RichBool("colorize", true, "Colorize", "Colorize the mesh to provide an indication of the obtained harmonic field.")); break; } + return parlst; } std::map FilterUnsharp::applyFilter( diff --git a/src/meshlabplugins/filter_unsharp/filter_unsharp.h b/src/meshlabplugins/filter_unsharp/filter_unsharp.h index ffc58ace5..cad9cfc66 100644 --- a/src/meshlabplugins/filter_unsharp/filter_unsharp.h +++ b/src/meshlabplugins/filter_unsharp/filter_unsharp.h @@ -78,7 +78,7 @@ public: MeshDocument &md, unsigned int& postConditionMask, vcg::CallBackPos * cb); - void initParameterList(const QAction* action, const MeshDocument &/*m*/, RichParameterList & parlst); + RichParameterList initParameterList(const QAction* action, const MeshDocument &/*m*/); int postCondition(const QAction* ) const; int getPreConditions(const QAction*) const; FilterArity filterArity(const QAction* filter) const; diff --git a/src/meshlabplugins/filter_voronoi/filter_voronoi.cpp b/src/meshlabplugins/filter_voronoi/filter_voronoi.cpp index db5791ce2..1e22105d7 100644 --- a/src/meshlabplugins/filter_voronoi/filter_voronoi.cpp +++ b/src/meshlabplugins/filter_voronoi/filter_voronoi.cpp @@ -132,21 +132,22 @@ FilterPlugin::FilterArity FilterVoronoiPlugin::filterArity(const QAction* a) con } } -void FilterVoronoiPlugin::initParameterList(const QAction* action, const MeshModel& m, RichParameterList& par) +RichParameterList FilterVoronoiPlugin::initParameterList(const QAction* action, const MeshModel& m) { - switch(ID(action)) { - case VORONOI_SAMPLING : - par.addParam(RichInt("iterNum", 10, "Iteration", "number of iterations")); - par.addParam(RichInt("sampleNum", 10, "Sample Num.", "Number of samples")); - par.addParam(RichFloat("radiusVariance", 1, "Radius Variance", "The distance metric will vary along the surface between 1/x and x, linearly according to the scalar field specified by the quality.")); - par.addParam(RichEnum("colorStrategy", 1, {"None", "Seed Distance", "Border Distance", "Region Area"}, "Color Strategy")); - par.addParam(RichEnum("distanceType", 0, {"Euclidean", "Quality Weighted", "Anisotropic"}, "Distance Type")); - par.addParam(RichBool("preprocessFlag", false, "Preprocessing")); - par.addParam(RichInt("refineFactor", 10, "Refinement Factor", "To ensure good convergence the mesh should be more complex than the voronoi partitioning. This number affect how much the mesh is refined according to the required number of samples.")); - par.addParam(RichFloat("perturbProbability", 0, "Perturbation Probability", "To ensure good convergence the mesh should be more complex than the voronoi partitioning. This number affect how much the mesh is refined according to the required number of samples.")); - par.addParam(RichFloat("perturbAmount", 0.001, "Perturbation Amount", "To ensure good convergence the mesh should be more complex than the voronoi partitioning. This number affect how much the mesh is refined according to the required number of samples.")); - par.addParam(RichInt("randomSeed", 0, "Random seed", "To ensure repeatability you can specify the random seed used. If 0 the random seed is tied to the current clock.")); - par.addParam(RichEnum("relaxType", 1, {"Geodesic", "Squared Distance", "Restricted"}, "Relax Type", + RichParameterList par; + switch(ID(action)) { + case VORONOI_SAMPLING : + par.addParam(RichInt("iterNum", 10, "Iteration", "number of iterations")); + par.addParam(RichInt("sampleNum", 10, "Sample Num.", "Number of samples")); + par.addParam(RichFloat("radiusVariance", 1, "Radius Variance", "The distance metric will vary along the surface between 1/x and x, linearly according to the scalar field specified by the quality.")); + par.addParam(RichEnum("colorStrategy", 1, {"None", "Seed Distance", "Border Distance", "Region Area"}, "Color Strategy")); + par.addParam(RichEnum("distanceType", 0, {"Euclidean", "Quality Weighted", "Anisotropic"}, "Distance Type")); + par.addParam(RichBool("preprocessFlag", false, "Preprocessing")); + par.addParam(RichInt("refineFactor", 10, "Refinement Factor", "To ensure good convergence the mesh should be more complex than the voronoi partitioning. This number affect how much the mesh is refined according to the required number of samples.")); + par.addParam(RichFloat("perturbProbability", 0, "Perturbation Probability", "To ensure good convergence the mesh should be more complex than the voronoi partitioning. This number affect how much the mesh is refined according to the required number of samples.")); + par.addParam(RichFloat("perturbAmount", 0.001, "Perturbation Amount", "To ensure good convergence the mesh should be more complex than the voronoi partitioning. This number affect how much the mesh is refined according to the required number of samples.")); + par.addParam(RichInt("randomSeed", 0, "Random seed", "To ensure repeatability you can specify the random seed used. If 0 the random seed is tied to the current clock.")); + par.addParam(RichEnum("relaxType", 1, {"Geodesic", "Squared Distance", "Restricted"}, "Relax Type", "At each relaxation step we search for each voronoi region the new position of the seed. " "According to the classical LLoyd relaxation strategy it should have been placed onto the " "barycenter of the region. Over a surface we have two different strategies:
    " @@ -154,45 +155,46 @@ void FilterVoronoiPlugin::initParameterList(const QAction* action, const MeshMod "
  • Squared Distance: the seed is placed in the vertex that minimize the squared sum of the distances from all the pints of the region.
  • " "
  • Restricted: the seed is placed in the barycenter of current voronoi region. Even if it is outside the surface. During the relaxation process the seed is free to move off the surface in a continuous way. Re-association to vertex is done at the end..
  • " "
")); - break; - case VOLUME_SAMPLING: - par.addParam(RichAbsPerc("sampleSurfRadius", m.cm.bbox.Diag() / 500.0, 0, m.cm.bbox.Diag(),"Surface Sampling Radius", "Surface Sampling is used only as an optimization.")); - par.addParam(RichInt("sampleVolNum", 200000, "Volume Sample Num.", "Number of volumetric samples scattered inside the mesh and used for choosing the voronoi seeds and performing the Lloyd relaxation for having a centroidal voronoi diagram.")); - par.addParam(RichBool("poissonFiltering", true, "Poisson Filtering", "If true the base montecarlo sampling of the volume is filtered to get a poisson disk volumetric distribution.")); - par.addParam(RichAbsPerc("poissonRadius", m.cm.bbox.Diag() / 100.0, 0, m.cm.bbox.Diag(), "Poisson Radius", "Number of voxel per side in the volumetric representation.")); - break; - case VORONOI_SCAFFOLDING: - par.addParam(RichAbsPerc("sampleSurfRadius", m.cm.bbox.Diag() / 100.0, 0, m.cm.bbox.Diag(), "Surface Sampling Radius", "Surface Sampling is used only as an optimization.")); - par.addParam(RichInt("sampleVolNum", 100000, "Volume Sample Num.", "Number of volumetric samples scattered inside the mesh and used for choosing the voronoi seeds and performing the Lloyd relaxation for having a centroidal voronoi diagram.")); - par.addParam(RichInt("voxelRes", 50, "Volume Side Resolution", "Number of voxel per side in the volumetric representation.")); - par.addParam(RichFloat("isoThr", 1, "Width of the entity (in voxel)", "Number of voxel per side in the volumetric representation.")); - par.addParam(RichInt("smoothStep", 3, "Smooth Step", "Number of voxel per side in the volumetric representation.")); - par.addParam(RichInt("relaxStep", 5, "Lloyd Relax Step", "Number of Lloyd relaxation step to get a better distribution of the voronoi seeds.")); - par.addParam(RichBool("surfFlag", true, "Add original surface", "Number of voxel per side in the volumetric representation.")); - par.addParam(RichEnum("elemType", 1, {"Seed", "Edge", "Face"}, "Voronoi Element")); - break; - case BUILD_SHELL: - par.addParam(RichBool("edgeCylFlag", true, "Edge -> Cyl.", "If True all the edges are converted into cylinders.")); - par.addParam(RichAbsPerc("edgeCylRadius", m.cm.bbox.Diag() / 100.0, 0, m.cm.bbox.Diag(), "Edge Cylinder Rad.", "The radius of the cylinder replacing each edge.")); - par.addParam(RichBool("vertCylFlag", false, "Vertex -> Cyl.", "If True all the vertices are converted into cylinders.")); - par.addParam(RichAbsPerc("vertCylRadius", m.cm.bbox.Diag() / 100.0, 0, m.cm.bbox.Diag(), "Vertex Cylinder Rad.", "The radius of the cylinder replacing each vertex.")); - par.addParam(RichBool("vertSphFlag", true, "Vertex -> Sph.", "If True all the vertices are converted into sphere.")); - par.addParam(RichAbsPerc("vertSphRadius", m.cm.bbox.Diag() / 100.0, 0, m.cm.bbox.Diag(), "Vertex Sphere Rad.", "The radius of the sphere replacing each vertex.")); - par.addParam(RichBool("faceExtFlag", true, "Face -> Prism", "If True all the faces are converted into prism.")); - par.addParam(RichAbsPerc("faceExtHeight", m.cm.bbox.Diag() / 200.0, 0, m.cm.bbox.Diag(), "Face Prism Height", "The Height of the prism that is substitued with each face.")); - par.addParam(RichAbsPerc("faceExtInset", m.cm.bbox.Diag() / 200.0, 0, m.cm.bbox.Diag(), "Face Prism Inset", "The inset radius of each prism, e.g. how much it is moved toward the inside each vertex on the border of the prism.")); - par.addParam(RichBool("edgeFauxFlag", true, "Ignore faux edges", "If true only the Non-Faux edges will be considered for conversion.")); - par.addParam(RichInt("cylinderSideNum", 16, "Cylinder Side", "Number of sides of the cylinder (both edge and vertex).")); - break; - case CROSS_FIELD_CREATION: - par.addParam(RichEnum("crossType", 0, {"Linear Y", "Radial", "Curvature"}, "Cross Type", "")); - break; -// case CROSS_FIELD_SMOOTHING: -// par.addParam(RichBool("preprocessFlag", true, "Preprocessing")); -// break; - default : - assert(0); - } + break; + case VOLUME_SAMPLING: + par.addParam(RichAbsPerc("sampleSurfRadius", m.cm.bbox.Diag() / 500.0, 0, m.cm.bbox.Diag(),"Surface Sampling Radius", "Surface Sampling is used only as an optimization.")); + par.addParam(RichInt("sampleVolNum", 200000, "Volume Sample Num.", "Number of volumetric samples scattered inside the mesh and used for choosing the voronoi seeds and performing the Lloyd relaxation for having a centroidal voronoi diagram.")); + par.addParam(RichBool("poissonFiltering", true, "Poisson Filtering", "If true the base montecarlo sampling of the volume is filtered to get a poisson disk volumetric distribution.")); + par.addParam(RichAbsPerc("poissonRadius", m.cm.bbox.Diag() / 100.0, 0, m.cm.bbox.Diag(), "Poisson Radius", "Number of voxel per side in the volumetric representation.")); + break; + case VORONOI_SCAFFOLDING: + par.addParam(RichAbsPerc("sampleSurfRadius", m.cm.bbox.Diag() / 100.0, 0, m.cm.bbox.Diag(), "Surface Sampling Radius", "Surface Sampling is used only as an optimization.")); + par.addParam(RichInt("sampleVolNum", 100000, "Volume Sample Num.", "Number of volumetric samples scattered inside the mesh and used for choosing the voronoi seeds and performing the Lloyd relaxation for having a centroidal voronoi diagram.")); + par.addParam(RichInt("voxelRes", 50, "Volume Side Resolution", "Number of voxel per side in the volumetric representation.")); + par.addParam(RichFloat("isoThr", 1, "Width of the entity (in voxel)", "Number of voxel per side in the volumetric representation.")); + par.addParam(RichInt("smoothStep", 3, "Smooth Step", "Number of voxel per side in the volumetric representation.")); + par.addParam(RichInt("relaxStep", 5, "Lloyd Relax Step", "Number of Lloyd relaxation step to get a better distribution of the voronoi seeds.")); + par.addParam(RichBool("surfFlag", true, "Add original surface", "Number of voxel per side in the volumetric representation.")); + par.addParam(RichEnum("elemType", 1, {"Seed", "Edge", "Face"}, "Voronoi Element")); + break; + case BUILD_SHELL: + par.addParam(RichBool("edgeCylFlag", true, "Edge -> Cyl.", "If True all the edges are converted into cylinders.")); + par.addParam(RichAbsPerc("edgeCylRadius", m.cm.bbox.Diag() / 100.0, 0, m.cm.bbox.Diag(), "Edge Cylinder Rad.", "The radius of the cylinder replacing each edge.")); + par.addParam(RichBool("vertCylFlag", false, "Vertex -> Cyl.", "If True all the vertices are converted into cylinders.")); + par.addParam(RichAbsPerc("vertCylRadius", m.cm.bbox.Diag() / 100.0, 0, m.cm.bbox.Diag(), "Vertex Cylinder Rad.", "The radius of the cylinder replacing each vertex.")); + par.addParam(RichBool("vertSphFlag", true, "Vertex -> Sph.", "If True all the vertices are converted into sphere.")); + par.addParam(RichAbsPerc("vertSphRadius", m.cm.bbox.Diag() / 100.0, 0, m.cm.bbox.Diag(), "Vertex Sphere Rad.", "The radius of the sphere replacing each vertex.")); + par.addParam(RichBool("faceExtFlag", true, "Face -> Prism", "If True all the faces are converted into prism.")); + par.addParam(RichAbsPerc("faceExtHeight", m.cm.bbox.Diag() / 200.0, 0, m.cm.bbox.Diag(), "Face Prism Height", "The Height of the prism that is substitued with each face.")); + par.addParam(RichAbsPerc("faceExtInset", m.cm.bbox.Diag() / 200.0, 0, m.cm.bbox.Diag(), "Face Prism Inset", "The inset radius of each prism, e.g. how much it is moved toward the inside each vertex on the border of the prism.")); + par.addParam(RichBool("edgeFauxFlag", true, "Ignore faux edges", "If true only the Non-Faux edges will be considered for conversion.")); + par.addParam(RichInt("cylinderSideNum", 16, "Cylinder Side", "Number of sides of the cylinder (both edge and vertex).")); + break; + case CROSS_FIELD_CREATION: + par.addParam(RichEnum("crossType", 0, {"Linear Y", "Radial", "Curvature"}, "Cross Type", "")); + break; +// case CROSS_FIELD_SMOOTHING: +// par.addParam(RichBool("preprocessFlag", true, "Preprocessing")); +// break; + default : + assert(0); + } + return par; } int FilterVoronoiPlugin::getPreConditions(const QAction* action) const diff --git a/src/meshlabplugins/filter_voronoi/filter_voronoi.h b/src/meshlabplugins/filter_voronoi/filter_voronoi.h index 94d788eee..6c1414dac 100644 --- a/src/meshlabplugins/filter_voronoi/filter_voronoi.h +++ b/src/meshlabplugins/filter_voronoi/filter_voronoi.h @@ -49,7 +49,7 @@ public: QString filterInfo(ActionIDType filter) const; FilterClass getClass(const QAction* a) const; FilterArity filterArity(const QAction* a) const; - void initParameterList(const QAction* action, const MeshModel& m, RichParameterList& par); + RichParameterList initParameterList(const QAction* action, const MeshModel& m); int getPreConditions(const QAction* action) const; std::map applyFilter( const QAction* action, diff --git a/src/meshlabserver/mainserver.cpp b/src/meshlabserver/mainserver.cpp index 077889f58..810e89629 100644 --- a/src/meshlabserver/mainserver.cpp +++ b/src/meshlabserver/mainserver.cpp @@ -617,8 +617,7 @@ public: //A filter in the script file couldn't have all the required parameter not defined (a script file not generated by MeshLab). //So we have to ask to the filter the default values for all the parameters and integrate them with the parameters' values //defined in the script file. - RichParameterList required; - iFilter->initParameterList(action,meshDocument,required); + RichParameterList required = iFilter->initParameterList(action,meshDocument); RichParameterList ¶meterSet = pair.second; //The parameters in the script file are more than the required parameters of the filter. The script file is not correct.