[Bf-blender-cvs] [c87e655] master: Fix T47833: View-aligned GPencil strokes move in crazyspace when grabbed

Joshua Leung noreply at git.blender.org
Wed Mar 23 15:32:58 CET 2016


Commit: c87e65542c49f348ebdf712b05d2132ccbb181bb
Author: Joshua Leung
Date:   Thu Mar 24 03:32:02 2016 +1300
Branches: master
https://developer.blender.org/rBc87e65542c49f348ebdf712b05d2132ccbb181bb

Fix T47833: View-aligned GPencil strokes move in crazyspace when grabbed

These fixes "seem" to do the right thing now...

===================================================================

M	source/blender/editors/transform/transform_conversions.c

===================================================================

diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index d52db8c..751e773 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -7793,15 +7793,26 @@ static void createTransGPencil(bContext *C, TransInfo *t)
 								td->ival = pt->pressure;
 							}
 							
-							/* configure 2D points so that they don't play up... */
-							if (gps->flag & (GP_STROKE_2DSPACE | GP_STROKE_2DIMAGE)) {
+							/* screenspace needs special matrices... */
+							if ((gps->flag & (GP_STROKE_3DSPACE | GP_STROKE_2DSPACE | GP_STROKE_2DIMAGE)) == 0) {
+								/* screenspace */
 								td->protectflag = OB_LOCK_LOCZ | OB_LOCK_ROTZ | OB_LOCK_SCALEZ;
-								// XXX: matrices may need to be different?
+								
+								copy_m3_m4(td->smtx, t->persmat);
+								copy_m3_m4(td->mtx, t->persinv);
+								unit_m3(td->axismtx);
+							}
+							else {
+								/* configure 2D dataspace points so that they don't play up... */
+								if (gps->flag & (GP_STROKE_2DSPACE | GP_STROKE_2DIMAGE)) {
+									td->protectflag = OB_LOCK_LOCZ | OB_LOCK_ROTZ | OB_LOCK_SCALEZ;
+									// XXX: matrices may need to be different?
+								}
+								
+								copy_m3_m3(td->smtx, smtx);
+								copy_m3_m3(td->mtx, mtx);
+								unit_m3(td->axismtx); // XXX?
 							}
-							
-							copy_m3_m3(td->smtx, smtx);
-							copy_m3_m3(td->mtx, mtx);
-							unit_m3(td->axismtx); // XXX?
 							
 							td++;
 							tail++;




More information about the Bf-blender-cvs mailing list