- fixed: subfile rotation had matrix multiplication done with operands the wrong way around, causing morphing

Sun, 29 Dec 2013 16:25:52 +0200

author
Santeri Piippo <crimsondusk64@gmail.com>
date
Sun, 29 Dec 2013 16:25:52 +0200
changeset 595
b6b39c1721a1
parent 594
d9feccafcbf7
child 596
43c233e91447

- fixed: subfile rotation had matrix multiplication done with operands the wrong way around, causing morphing

changelog.txt file | annotate | diff | comparison | revisions
src/gui_editactions.cc file | annotate | diff | comparison | revisions
--- a/changelog.txt	Sun Dec 29 16:24:41 2013 +0200
+++ b/changelog.txt	Sun Dec 29 16:25:52 2013 +0200
@@ -52,6 +52,8 @@
 	and the algorithm can terminate early, hopefully this will save a few cycles on large parts.
 - The camera icons now draw real tooltips instead of emulated ones.
 - Color icon border now reflects the color's edge color.
+- Fixed: When rotating subfiles, the scale was treated incorrectly due to bad operand order in matrix
+	multiplication, causing unwanted morphing.
 - [Linux] Fixed: If an external program is attempted to be launched requiring Wine but with Wine missing,
 	there was no error message and instead LDForge took this as no output from the program.
 - Fixed: LDForge would sometimes crash during startup over uninitialized data in the GL renderer.
--- a/src/gui_editactions.cc	Sun Dec 29 16:24:41 2013 +0200
+++ b/src/gui_editactions.cc	Sun Dec 29 16:25:52 2013 +0200
@@ -461,7 +461,7 @@
 			*/
 
 			// Transform the matrix
-			mo->setTransform (mo->getTransform() * transform);
+			mo->setTransform (transform * mo->getTransform());
 		} elif (obj->getType() == LDObject::Vertex)
 		{	LDVertex* vert = static_cast<LDVertex*> (obj);
 			vertex v = vert->pos;

mercurial