select problematic faces first clears the selection

This commit is contained in:
alemuntoni 2021-10-15 10:44:49 +02:00
parent c321c42e87
commit fad9590fe4
2 changed files with 552 additions and 375 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,25 +1,25 @@
/****************************************************************************
* MeshLab o o *
* A versatile mesh processing toolbox o o *
* _ O _ *
* Copyright(C) 2005 \/)\/ *
* Visual Computing Lab /\/| *
* ISTI - Italian National Research Council | *
* \ *
* All rights reserved. *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt) *
* for more details. *
* *
****************************************************************************/
/*****************************************************************************
* MeshLab o o *
* A versatile mesh processing toolbox o o *
* _ O _ *
* Copyright(C) 2005-2021 \/)\/ *
* Visual Computing Lab /\/| *
* ISTI - Italian National Research Council | *
* \ *
* All rights reserved. *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt) *
* for more details. *
* *
****************************************************************************/
#ifndef FILTER_SELECT_H
#define FILTER_SELECT_H
@ -27,7 +27,6 @@
#include <QObject>
#include <common/plugins/interfaces/filter_plugin.h>
class SelectionFilterPlugin : public QObject, public FilterPlugin
{
Q_OBJECT
@ -35,10 +34,6 @@ class SelectionFilterPlugin : public QObject, public FilterPlugin
Q_INTERFACES(FilterPlugin)
public:
/* naming convention :
- FP -> Filter Plugin
- name of the plugin separated by _
*/
enum {
FP_SELECT_ALL,
FP_SELECT_NONE,
@ -58,32 +53,32 @@ public:
FP_SELECT_BY_FACE_QUALITY,
FP_SELECT_BY_VERT_QUALITY,
FP_SELECT_BY_RANGE,
FP_SELECT_BY_COLOR,CP_SELFINTERSECT_SELECT,
FP_SELECT_BY_COLOR,
CP_SELFINTERSECT_SELECT,
CP_SELECT_TEXBORDER,
CP_SELECT_NON_MANIFOLD_FACE,
CP_SELECT_NON_MANIFOLD_VERTEX,
FP_SELECT_FACES_BY_EDGE,
FP_SELECT_OUTLIER
} ;
};
SelectionFilterPlugin();
//~SelectionFilterPlugin();
QString pluginName() const;
QString filterInfo(ActionIDType filter) const;
QString filterName(ActionIDType filter) const;
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*);
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*);
std::map<std::string, QVariant> applyFilter(
const QAction* action,
const RichParameterList & parameters,
MeshDocument &md,
unsigned int& postConditionMask,
vcg::CallBackPos * cb);
FilterArity filterArity(const QAction *) const {return SINGLE_MESH;}
const QAction* action,
const RichParameterList& parameters,
MeshDocument& md,
unsigned int& postConditionMask,
vcg::CallBackPos* cb);
FilterArity filterArity(const QAction*) const { return SINGLE_MESH; }
};
#endif