From 511a6ec4f21dadde07875be5d6efc68ca9f28d69 Mon Sep 17 00:00:00 2001 From: Paolo Cignoni cignoni Date: Sat, 13 Nov 2010 17:09:06 +0000 Subject: [PATCH] Fixed axis orientation --- src/fgt/filter_photosynth/downloader.cpp | 8 ++++++-- src/fgt/filter_photosynth/filter_photosynth.cpp | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/fgt/filter_photosynth/downloader.cpp b/src/fgt/filter_photosynth/downloader.cpp index 884010266..f13b4208b 100644 --- a/src/fgt/filter_photosynth/downloader.cpp +++ b/src/fgt/filter_photosynth/downloader.cpp @@ -27,7 +27,7 @@ Point3f CameraParameters::getTranslation() { - return Point3f(_fields[CameraParameters::POS_X], _fields[CameraParameters::POS_Y], _fields[CameraParameters::POS_Z]); + return Point3f(_fields[CameraParameters::POS_X], _fields[CameraParameters::POS_Z], -_fields[CameraParameters::POS_Y]); } Matrix44f CameraParameters::getRotation() @@ -45,7 +45,11 @@ Matrix44f CameraParameters::getRotation() // (rot * flip)^T = flip^T * rot^T Matrix44f transposedFlippedRot = flip.transpose() * rot.transpose(); - return transposedFlippedRot; + Matrix44f rotate90; + rotate90.SetRotateDeg(90,Point3f(1,0,0)); + Matrix44f rotation = transposedFlippedRot * rotate90; + + return rotation; } /************** diff --git a/src/fgt/filter_photosynth/filter_photosynth.cpp b/src/fgt/filter_photosynth/filter_photosynth.cpp index c6345b496..ab280a4b5 100644 --- a/src/fgt/filter_photosynth/filter_photosynth.cpp +++ b/src/fgt/filter_photosynth/filter_photosynth.cpp @@ -150,7 +150,7 @@ bool FilterPhotosynthPlugin::applyFilter(QAction */*filter*/, MeshDocument &md, foreach(p, sys->_pointCloud->_points) { tri::Allocator::AddVertices(mm->cm,1); - mm->cm.vert.back().P() = Point3f(p._x,p._y,p._z); + mm->cm.vert.back().P() = Point3f(p._x,p._z,-p._y); mm->cm.vert.back().C() = Color4b(p._r,p._g,p._b,255); } @@ -166,7 +166,7 @@ bool FilterPhotosynthPlugin::applyFilter(QAction */*filter*/, MeshDocument &md, s.Extrinsics.SetTra(cam.getTranslation()); //add a point to the cameras layer as a placeholder for the camera tri::Allocator::AddVertices(mm->cm,1); - mm->cm.vert.back().P() = Point3f(cam[CameraParameters::POS_X], cam[CameraParameters::POS_Y], cam[CameraParameters::POS_Z]); + mm->cm.vert.back().P() = cam.getTranslation(); //find intrinsics Image img = synthData->_imageMap->value(cam._imageID); QDir imageDir(path);