[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14427] trunk/blender/source/blender/src: made sculpt axis locking use local/global space (using the transform space )

Campbell Barton ideasman42 at gmail.com
Tue Apr 15 11:21:10 CEST 2008


Revision: 14427
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14427
Author:   campbellbarton
Date:     2008-04-15 11:20:13 +0200 (Tue, 15 Apr 2008)

Log Message:
-----------
made sculpt axis locking use local/global space (using the transform space)
also added some checks for sculpt mixing with other modes (was possible to mix sculpt+posemode)

Modified Paths:
--------------
    trunk/blender/source/blender/src/editarmature.c
    trunk/blender/source/blender/src/outliner.c
    trunk/blender/source/blender/src/poseobject.c
    trunk/blender/source/blender/src/sculptmode.c

Modified: trunk/blender/source/blender/src/editarmature.c
===================================================================
--- trunk/blender/source/blender/src/editarmature.c	2008-04-14 22:45:28 UTC (rev 14426)
+++ trunk/blender/source/blender/src/editarmature.c	2008-04-15 09:20:13 UTC (rev 14427)
@@ -1855,7 +1855,7 @@
 	if ELEM(curarea->spacetype, SPACE_VIEW3D, SPACE_INFO); else return;
 	if (G.vd==NULL) return;
 	
-	G.f &= ~(G_VERTEXPAINT+G_TEXTUREPAINT+G_WEIGHTPAINT);
+	G.f &= ~(G_VERTEXPAINT+G_TEXTUREPAINT+G_WEIGHTPAINT+G_SCULPTMODE);
 	setcursor_space(SPACE_VIEW3D, CURSOR_STD);
 
 	check_editmode(OB_ARMATURE);

Modified: trunk/blender/source/blender/src/outliner.c
===================================================================
--- trunk/blender/source/blender/src/outliner.c	2008-04-14 22:45:28 UTC (rev 14426)
+++ trunk/blender/source/blender/src/outliner.c	2008-04-15 09:20:13 UTC (rev 14427)
@@ -1302,6 +1302,8 @@
 	return retval;
 }
 
+/* This is not used anywhere at the moment */
+#if 0
 static void outliner_open_reveal(SpaceOops *soops, ListBase *lb, TreeElement *teFind, int *found)
 {
 	TreeElement *te;
@@ -1324,8 +1326,8 @@
 		}
 	}
 }
+#endif
 
-
 void outliner_one_level(struct ScrArea *sa, int add)
 {
 	SpaceOops *soops= sa->spacedata.first;
@@ -2652,7 +2654,7 @@
 		if(G.obedit==base->object) exit_editmode(EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR);
 		
 		if(base==BASACT) {
-			G.f &= ~(G_VERTEXPAINT+G_TEXTUREPAINT+G_WEIGHTPAINT);
+			G.f &= ~(G_VERTEXPAINT+G_TEXTUREPAINT+G_WEIGHTPAINT+G_SCULPTMODE);
 			setcursor_space(SPACE_VIEW3D, CURSOR_STD);
 		}
 		

Modified: trunk/blender/source/blender/src/poseobject.c
===================================================================
--- trunk/blender/source/blender/src/poseobject.c	2008-04-14 22:45:28 UTC (rev 14426)
+++ trunk/blender/source/blender/src/poseobject.c	2008-04-15 09:20:13 UTC (rev 14427)
@@ -121,7 +121,7 @@
 	}
 
 	if (G.obedit) exit_editmode(EM_FREEDATA|EM_WAITCURSOR);
-	G.f &= ~(G_VERTEXPAINT | G_TEXTUREPAINT | G_WEIGHTPAINT);
+	G.f &= ~(G_VERTEXPAINT | G_TEXTUREPAINT | G_WEIGHTPAINT | G_SCULPTMODE);
 }
 
 void set_pose_keys (Object *ob)

Modified: trunk/blender/source/blender/src/sculptmode.c
===================================================================
--- trunk/blender/source/blender/src/sculptmode.c	2008-04-14 22:45:28 UTC (rev 14426)
+++ trunk/blender/source/blender/src/sculptmode.c	2008-04-15 09:20:13 UTC (rev 14427)
@@ -422,9 +422,20 @@
 {
 	SculptData *sd = sculpt_data();
 	if (sd->axislock == AXISLOCK_X+AXISLOCK_Y+AXISLOCK_Z) return;
-	if (sd->axislock & AXISLOCK_X) co[0] = 0.0;
-	if (sd->axislock & AXISLOCK_Y) co[1] = 0.0;
-	if (sd->axislock & AXISLOCK_Z) co[2] = 0.0;
+	if (G.vd->twmode == V3D_MANIP_LOCAL) {
+		float mat[3][3], imat[3][3];
+		Mat3CpyMat4(mat, OBACT->obmat);
+		Mat3Inv(imat, mat);
+		Mat3MulVecfl(mat, co);
+		if (sd->axislock & AXISLOCK_X) co[0] = 0.0;
+		if (sd->axislock & AXISLOCK_Y) co[1] = 0.0;
+		if (sd->axislock & AXISLOCK_Z) co[2] = 0.0;		
+		Mat3MulVecfl(imat, co);
+	} else {
+		if (sd->axislock & AXISLOCK_X) co[0] = 0.0;
+		if (sd->axislock & AXISLOCK_Y) co[1] = 0.0;
+		if (sd->axislock & AXISLOCK_Z) co[2] = 0.0;		
+	}
 }
 
 static void add_norm_if(const BrushAction *a, float out[3], float out_flip[3], const short no[3])





More information about the Bf-blender-cvs mailing list