From b6df3b03b480cdc7d2e8ecb5f39db16d569177e1 Mon Sep 17 00:00:00 2001 From: Paolo Cignoni cignoni Date: Thu, 2 Feb 2012 10:16:57 +0000 Subject: [PATCH] Changed from float to double the type of the alignment matrixes when changing the base mesh. This removes a precision issue that arose when changing the base mesh after a complete alignment. --- src/meshlabplugins/edit_align/edit_align.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/meshlabplugins/edit_align/edit_align.cpp b/src/meshlabplugins/edit_align/edit_align.cpp index b9fa2a373..24a56c74c 100644 --- a/src/meshlabplugins/edit_align/edit_align.cpp +++ b/src/meshlabplugins/edit_align/edit_align.cpp @@ -159,13 +159,13 @@ void EditAlignPlugin::hideRevealGluedMesh() void EditAlignPlugin::setBaseMesh() { - Matrix44f oldTr = md->mm()->cm.Tr; - Matrix44f inv = Inverse(oldTr); + Matrix44d oldTr = Matrix44d::Construct(md->mm()->cm.Tr); + Matrix44d inv = Inverse(oldTr); md->mm()->cm.Tr.SetIdentity(); foreach(MeshNode *mn, meshTree.nodeList) if(mn->glued && (mn->m != md->mm()) ) - mn->m->cm.Tr *= inv; + mn->m->cm.Tr.Import(inv*Matrix44d::Construct(mn->m->cm.Tr)); alignDialog->rebuildTree(); gla->update();