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++;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to