dellepiane: added delete_non_visible_mesh and delete_non_selected_raster functionalities

This commit is contained in:
Matteo Dellepiane matteodelle 2013-10-16 07:46:55 +00:00
parent 45613338e1
commit 5c7c55d080
2 changed files with 27 additions and 1 deletions

View File

@ -40,7 +40,9 @@ FilterLayerPlugin::FilterLayerPlugin()
typeList <<
FP_FLATTEN <<
FP_DELETE_MESH <<
FP_DELETE_NON_VISIBLE_MESH <<
FP_DELETE_RASTER <<
FP_DELETE_NON_SELECTED_RASTER <<
FP_SPLITSELECT <<
FP_SPLITCONNECTED <<
FP_RENAME_MESH <<
@ -60,7 +62,9 @@ FilterLayerPlugin::FilterLayerPlugin()
case FP_SPLITCONNECTED : return QString("Split in Connected Components");
case FP_DUPLICATE : return QString("Duplicate Current layer");
case FP_DELETE_MESH : return QString("Delete Current Mesh");
case FP_DELETE_NON_VISIBLE_MESH : return QString("Delete all non visible Mesh Layers");
case FP_DELETE_RASTER : return QString("Delete Current Raster");
case FP_DELETE_NON_SELECTED_RASTER : return QString("Delete all Non Selected Rasters");
case FP_FLATTEN : return QString("Flatten Visible Layers");
case FP_RENAME_MESH : return QString("Rename Current Mesh");
case FP_RENAME_RASTER : return QString("Rename Current Raster");
@ -75,7 +79,9 @@ FilterLayerPlugin::FilterLayerPlugin()
switch(filterId) {
case FP_SPLITSELECT : return QString("Selected faces are moved (or duplicated) in a new layer");
case FP_DELETE_MESH : return QString("The current mesh layer is deleted");
case FP_DELETE_NON_VISIBLE_MESH : return QString("All the non visible mesh layers are deleted");
case FP_DELETE_RASTER : return QString("The current raster layer is deleted");
case FP_DELETE_NON_SELECTED_RASTER : return QString("All non selected raster layers are deleted");
case FP_SPLITCONNECTED: return QString("Split current Layer into many layers, one for each connected components");
case FP_DUPLICATE : return QString("Create a new layer containing the same model as the current one");
case FP_FLATTEN : return QString("Flatten all or only the visible layers into a single new mesh. <br> Transformations are preserved. Existing layers can be optionally deleted");
@ -150,7 +156,25 @@ bool FilterLayerPlugin::applyFilter(QAction *filter, MeshDocument &md, RichParam
if(md.mm())
md.delMesh(md.mm());
break;
case FP_DELETE_NON_VISIBLE_MESH :
foreach(MeshModel *mmp, md.meshList)
{
if(!mmp->visible)
{
md.delMesh(mmp);
}
}
break;
case FP_DELETE_RASTER : if(md.rm()) md.delRaster(md.rm()); break;
case FP_DELETE_NON_SELECTED_RASTER :
foreach(RasterModel *rmp, md.rasterList)
{
if(!rmp->visible)
{
md.delRaster(rmp);
}
}
break;
case FP_SPLITSELECT :
{
@ -301,9 +325,11 @@ FilterLayerPlugin::FilterClass FilterLayerPlugin::getClass(QAction *a)
case FP_SELECTCURRENT :
case FP_SPLITCONNECTED :
case FP_DELETE_MESH :
case FP_DELETE_NON_VISIBLE_MESH :
return MeshFilterInterface::Layer;
case FP_RENAME_RASTER :
case FP_DELETE_RASTER :
case FP_DELETE_NON_SELECTED_RASTER :
return MeshFilterInterface::RasterLayer;
default : assert(0);

View File

@ -35,7 +35,7 @@ class FilterLayerPlugin : public QObject, public MeshFilterInterface
Q_INTERFACES(MeshFilterInterface)
public:
enum { FP_FLATTEN, FP_SPLITSELECT, FP_SPLITCONNECTED, FP_DUPLICATE, FP_RENAME_MESH, FP_RENAME_RASTER, FP_DELETE_MESH, FP_DELETE_RASTER, FP_SELECTCURRENT };
enum { FP_FLATTEN, FP_SPLITSELECT, FP_SPLITCONNECTED, FP_DUPLICATE, FP_RENAME_MESH, FP_RENAME_RASTER, FP_DELETE_MESH, FP_DELETE_NON_VISIBLE_MESH,FP_DELETE_RASTER, FP_DELETE_NON_SELECTED_RASTER,FP_SELECTCURRENT };
FilterLayerPlugin();