diff --git a/src/meshlabplugins/filter_camera/filter_camera.cpp b/src/meshlabplugins/filter_camera/filter_camera.cpp
index 98948e3ab..c8b06c3c6 100644
--- a/src/meshlabplugins/filter_camera/filter_camera.cpp
+++ b/src/meshlabplugins/filter_camera/filter_camera.cpp
@@ -105,8 +105,8 @@ void FilterCameraPlugin::initParameterSet(QAction *action, MeshDocument &/*m*/,
parlst.addParam(new RichDynamicFloat("angle",0,-360,360,"Rotation Angle","Angle of rotation (in degree). If snapping is enable this vaule is rounded according to the snap value"));
parlst.addParam(new RichPoint3f("customAxis",Point3f(0,0,0),"Custom axis","This rotation axis is used only if the 'custom axis' option is chosen."));
parlst.addParam(new RichPoint3f("customCenter",Point3f(0,0,0),"Custom center","This rotation center is used only if the 'custom point' option is chosen."));
- parlst.addParam(new RichBool ("toallRaster", false, "Apply to all Raster layers", "Apply the same scaling to all the Raster layers: it is taken into account only if 'Raster Camera' is selected"));
- parlst.addParam(new RichBool ("toall", false, "Apply to all Raster and Mesh layers", "Apply the same scaling to all the layers, including any 3D layer"));
+ parlst.addParam(new RichBool ("toallRaster", false, "Apply to all active Raster layers", "Apply the same scaling to all the active Raster layers: it is taken into account only if 'Raster Camera' is selected"));
+ parlst.addParam(new RichBool ("toall", false, "Apply to all active Raster and visible Mesh layers", "Apply the same scaling to all the layers, including any visible 3D layer"));
}
break;
case FP_CAMERA_SCALE :
@@ -122,8 +122,8 @@ void FilterCameraPlugin::initParameterSet(QAction *action, MeshDocument &/*m*/,
parlst.addParam(new RichEnum("scaleCenter", 0, scaleCenter, tr("Center of scaling:"), tr("Choose a method")));
parlst.addParam(new RichPoint3f("customCenter",Point3f(0,0,0),"Custom center","This scaling center is used only if the 'custom point' option is chosen."));
parlst.addParam(new RichFloat("scale", 1.0, "Scale factor", "The scale factor that has to be applied to the camera"));
- parlst.addParam(new RichBool ("toallRaster", false, "Apply to all Raster layers", "Apply the same scaling to all the Raster layers: it is taken into account only if 'Raster Camera' is selected"));
- parlst.addParam(new RichBool ("toall", false, "Apply to all Raster and Mesh layers", "Apply the same scaling to all the layers, including any 3D layer"));
+ parlst.addParam(new RichBool ("toallRaster", false, "Apply to all active Raster layers", "Apply the same scaling to all the active Raster layers: it is taken into account only if 'Raster Camera' is selected"));
+ parlst.addParam(new RichBool ("toall", false, "Apply to all active Raster and visible Mesh layers", "Apply the same scaling to all the layers, including any visible 3D layer"));
}
break;
case FP_CAMERA_TRANSLATE :
@@ -136,8 +136,8 @@ void FilterCameraPlugin::initParameterSet(QAction *action, MeshDocument &/*m*/,
parlst.addParam(new RichDynamicFloat("axisY",0,-1000,1000,"Y Axis","Absolute translation amount along the Y axis"));
parlst.addParam(new RichDynamicFloat("axisZ",0,-1000,1000,"Z Axis","Absolute translation amount along the Z axis"));
parlst.addParam(new RichBool("centerFlag",false,"translate viewpoint position to the origin","If selected, the camera viewpoint is translated to the origin"));
- parlst.addParam(new RichBool ("toallRaster", false, "Apply to all Raster layers", "Apply the same scaling to all the Raster layers: it is taken into account only if 'Raster Camera' is selected"));
- parlst.addParam(new RichBool ("toall", false, "Apply to all Raster and Mesh layers", "Apply the same scaling to all the layers, including any 3D layer"));
+ parlst.addParam(new RichBool ("toallRaster", false, "Apply to all active Raster layers", "Apply the same scaling to all the active Raster layers: it is taken into account only if 'Raster Camera' is selected"));
+ parlst.addParam(new RichBool ("toall", false, "Apply to all active Raster and Mesh layers", "Apply the same scaling to all the layers, including any visible 3D layer"));
}
break;
@@ -154,8 +154,8 @@ void FilterCameraPlugin::initParameterSet(QAction *action, MeshDocument &/*m*/,
parlst.addParam(new RichMatrix44f("TransformMatrix",mat,""));
parlst.addParam(new RichEnum("camera", 0, shotType, tr("Camera type"), tr("Choose the camera to scale")));
parlst.addParam(new RichEnum("behaviour", 0, behaviour, tr("Matrix semantic"), tr("What the matrix is used for")));
- parlst.addParam(new RichBool ("toallRaster", false, "Apply to all Raster layers", "Apply the same scaling to all the Raster layers: it is taken into account only if 'Raster Camera' is selected"));
- parlst.addParam(new RichBool ("toall", false, "Apply to all Raster and Mesh layers", "Apply the same scaling to all the layers, including any 3D layer"));
+ parlst.addParam(new RichBool ("toallRaster", false, "Apply to all active Raster layers", "Apply the same scaling to all the active Raster layers: it is taken into account only if 'Raster Camera' is selected"));
+ parlst.addParam(new RichBool ("toall", false, "Apply to all active Raster and visible Mesh layers", "Apply the same scaling to all the layers, including any visible 3D layer"));
}
break; case FP_SET_RASTER_CAMERA :
@@ -251,7 +251,7 @@ bool FilterCameraPlugin::applyFilter(QAction *filter, MeshDocument &md, RichPara
{
for (int i=0; ivisible)
{
md.meshList[i]->cm.Tr=transf * md.meshList[i]->cm.Tr;
tri::UpdatePosition::Matrix(md.meshList[i]->cm, md.meshList[i]->cm.Tr);
@@ -265,7 +265,7 @@ bool FilterCameraPlugin::applyFilter(QAction *filter, MeshDocument &md, RichPara
}
for (int i=0; ivisible)
md.rasterList[i]->shot.ApplyRigidTransformation(transf);
}
}
@@ -273,7 +273,7 @@ bool FilterCameraPlugin::applyFilter(QAction *filter, MeshDocument &md, RichPara
{
for (int i=0; ivisible)
md.rasterList[i]->shot.ApplyRigidTransformation(transf);
}
}
@@ -301,6 +301,7 @@ bool FilterCameraPlugin::applyFilter(QAction *filter, MeshDocument &md, RichPara
}
}
}
+ md.documentUpdated();
break;
case FP_CAMERA_SCALE :
{
@@ -350,7 +351,7 @@ bool FilterCameraPlugin::applyFilter(QAction *filter, MeshDocument &md, RichPara
{
for (int i=0; ivisible)
{
md.meshList[i]->cm.Tr=trTran*trScale*trTranInv;
tri::UpdatePosition::Matrix(md.meshList[i]->cm, md.meshList[i]->cm.Tr);
@@ -366,7 +367,7 @@ bool FilterCameraPlugin::applyFilter(QAction *filter, MeshDocument &md, RichPara
}
for (int i=0; ivisible)
{
md.rasterList[i]->shot.ApplyRigidTransformation(trTran);
md.rasterList[i]->shot.RescalingWorld(trScale[0][0], false);
@@ -378,7 +379,7 @@ bool FilterCameraPlugin::applyFilter(QAction *filter, MeshDocument &md, RichPara
{
for (int i=0; ivisible)
{
md.rasterList[i]->shot.ApplyRigidTransformation(trTran);
md.rasterList[i]->shot.RescalingWorld(trScale[0][0], false);
@@ -414,6 +415,7 @@ bool FilterCameraPlugin::applyFilter(QAction *filter, MeshDocument &md, RichPara
}
}
}
+ md.documentUpdated();
break;
case FP_CAMERA_TRANSLATE :
{
@@ -450,7 +452,7 @@ bool FilterCameraPlugin::applyFilter(QAction *filter, MeshDocument &md, RichPara
{
for (int i=0; ivisible)
{
md.meshList[i]->cm.Tr=trTran;
tri::UpdatePosition::Matrix(md.meshList[i]->cm, md.meshList[i]->cm.Tr);
@@ -463,7 +465,7 @@ bool FilterCameraPlugin::applyFilter(QAction *filter, MeshDocument &md, RichPara
}
for (int i=0; ivisible)
md.rasterList[i]->shot.ApplyRigidTransformation(trTran);
}
@@ -472,7 +474,7 @@ bool FilterCameraPlugin::applyFilter(QAction *filter, MeshDocument &md, RichPara
{
for (int i=0; ivisible)
md.rasterList[i]->shot.ApplyRigidTransformation(trTran);
}
}
@@ -500,6 +502,7 @@ bool FilterCameraPlugin::applyFilter(QAction *filter, MeshDocument &md, RichPara
}
}
}
+ md.documentUpdated();
break;
case FP_CAMERA_TRANSFORM :
{
@@ -527,7 +530,7 @@ bool FilterCameraPlugin::applyFilter(QAction *filter, MeshDocument &md, RichPara
{
for (int i=0; ivisible)
{
md.meshList[i]->cm.Tr = mat;
tri::UpdatePosition::Matrix(md.meshList[i]->cm, md.meshList[i]->cm.Tr);
@@ -539,7 +542,7 @@ bool FilterCameraPlugin::applyFilter(QAction *filter, MeshDocument &md, RichPara
}
for (int i=0; ivisible)
md.rasterList[i]->shot.ApplySimilarity(mat);
}
@@ -548,7 +551,7 @@ bool FilterCameraPlugin::applyFilter(QAction *filter, MeshDocument &md, RichPara
{
for (int i=0; ivisible)
md.rasterList[i]->shot.ApplySimilarity(mat);
}
}
@@ -576,7 +579,7 @@ bool FilterCameraPlugin::applyFilter(QAction *filter, MeshDocument &md, RichPara
}
}
}
-
+ md.documentUpdated();
break;
case FP_SET_RASTER_CAMERA :
@@ -674,6 +677,7 @@ bool FilterCameraPlugin::applyFilter(QAction *filter, MeshDocument &md, RichPara
}
}
}
+ md.documentUpdated();
break;
}
return true;
@@ -688,7 +692,7 @@ int FilterCameraPlugin::postCondition(QAction * filter) const
case FP_CAMERA_TRANSLATE :
case FP_CAMERA_TRANSFORM:
case FP_CAMERA_SCALE :
- return MeshModel::MM_CAMERA + MeshModel::MM_TRANSFMATRIX + MeshModel::MM_VERTCOORD + MeshModel::MM_VERTNORMAL + RasterModel::RM_ALL;
+ return MeshModel::MM_ALL + RasterModel::RM_ALL;
case FP_QUALITY_FROM_CAMERA :
return MeshModel::MM_VERTQUALITY + MeshModel::MM_VERTCOLOR;
default : return MeshModel::MM_UNKNOWN;
@@ -705,7 +709,7 @@ FilterCameraPlugin::FilterClass FilterCameraPlugin::getClass(QAction *a)
case FP_CAMERA_TRANSFORM:
case FP_SET_MESH_CAMERA :
case FP_QUALITY_FROM_CAMERA :
- return MeshFilterInterface::Camera;
+ return FilterClass (MeshFilterInterface::Camera + MeshFilterInterface::RasterLayer + MeshFilterInterface::Normal);
case FP_SET_RASTER_CAMERA :
return FilterClass (MeshFilterInterface::Camera + MeshFilterInterface::RasterLayer) ;
case FP_ORIENT_NORMALS_WITH_CAMERAS: