[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