fixed issues on assignment of shots to raster

This commit is contained in:
Matteo Dellepiane matteodelle 2011-05-19 14:39:58 +00:00
parent af09524b6b
commit e928bcaec1
2 changed files with 19 additions and 1 deletions

View File

@ -113,7 +113,17 @@ bool FilterCameraPlugin::applyFilter(QAction *filter, MeshDocument &md, RichPara
}
break;
case FP_SET_RASTER_CAMERA :
rm->shot = par.getShotf("Shot");
{
vcg::Shotf shotGot=par.getShotf("Shot");
rm->shot = shotGot;
float ratio=(float)rm->currentPlane->image.height()/(float)shotGot.Intrinsics.ViewportPx[1];
rm->shot.Intrinsics.ViewportPx[0]=rm->currentPlane->image.width();
rm->shot.Intrinsics.ViewportPx[1]=rm->currentPlane->image.height();
rm->shot.Intrinsics.PixelSizeMm[1]/=ratio;
rm->shot.Intrinsics.PixelSizeMm[0]/=ratio;
rm->shot.Intrinsics.CenterPx[0]=(int)((float)rm->shot.Intrinsics.ViewportPx[0]/2.0);
rm->shot.Intrinsics.CenterPx[1]=(int)((float)rm->shot.Intrinsics.ViewportPx[1]/2.0);
}
break;
case FP_SET_MESH_CAMERA :
cm.shot = par.getShotf("Shot");

View File

@ -231,6 +231,14 @@ bool FilterMutualInfoPlugin::applyFilter(QAction */*filter*/, MeshDocument &md,
//align.readRender(0);
md.rm()->shot=align.shot;
float ratio=(float)md.rm()->currentPlane->image.height()/(float)align.shot.Intrinsics.ViewportPx[1];
md.rm()->shot.Intrinsics.ViewportPx[0]=md.rm()->currentPlane->image.width();
md.rm()->shot.Intrinsics.ViewportPx[1]=md.rm()->currentPlane->image.height();
md.rm()->shot.Intrinsics.PixelSizeMm[1]/=ratio;
md.rm()->shot.Intrinsics.PixelSizeMm[0]/=ratio;
md.rm()->shot.Intrinsics.CenterPx[0]=(int)((float)md.rm()->shot.Intrinsics.ViewportPx[0]/2.0);
md.rm()->shot.Intrinsics.CenterPx[1]=(int)((float)md.rm()->shot.Intrinsics.ViewportPx[1]/2.0);
this->glContext->doneCurrent();
//emit md.rasterSetChanged();
return true;