[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33838] trunk/blender/source/blender: Bugfix #25330
Ton Roosendaal
ton at blender.org
Tue Dec 21 19:55:49 CET 2010
Revision: 33838
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33838
Author: ton
Date: 2010-12-21 19:55:49 +0100 (Tue, 21 Dec 2010)
Log Message:
-----------
Bugfix #25330
3D Window: Snap to cursor or grid, didn't respect the 'restrict location'
options for objects or bones.
Modified Paths:
--------------
trunk/blender/source/blender/editors/space_view3d/view3d_snap.c
trunk/blender/source/blender/makesdna/DNA_screen_types.h
trunk/blender/source/blender/makesrna/intern/rna_screen.c
Modified: trunk/blender/source/blender/editors/space_view3d/view3d_snap.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_snap.c 2010-12-21 15:10:09 UTC (rev 33837)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_snap.c 2010-12-21 18:55:49 UTC (rev 33838)
@@ -510,7 +510,12 @@
armature_loc_pose_to_bone(pchan, vec, vecN);
/* adjust location */
- VECCOPY(pchan->loc, vecN);
+ if ((pchan->protectflag & OB_LOCK_LOCX)==0)
+ pchan->loc[0]= vecN[0];
+ if ((pchan->protectflag & OB_LOCK_LOCY)==0)
+ pchan->loc[0]= vecN[1];
+ if ((pchan->protectflag & OB_LOCK_LOCZ)==0)
+ pchan->loc[0]= vecN[2];
}
/* if the bone has a parent and is connected to the parent,
* don't do anything - will break chain unless we do auto-ik.
@@ -536,16 +541,14 @@
invert_m3_m3(imat, originmat);
mul_m3_v3(imat, vec);
- ob->loc[0]+= vec[0];
- ob->loc[1]+= vec[1];
- ob->loc[2]+= vec[2];
}
- else {
+ if ((ob->protectflag & OB_LOCK_LOCX)==0)
ob->loc[0]+= vec[0];
+ if ((ob->protectflag & OB_LOCK_LOCY)==0)
ob->loc[1]+= vec[1];
+ if ((ob->protectflag & OB_LOCK_LOCZ)==0)
ob->loc[2]+= vec[2];
- }
-
+
/* auto-keyframing */
// XXX autokeyframe_ob_cb_func(ob, TFM_TRANSLATION);
}
@@ -633,8 +636,13 @@
/* get location of cursor in bone-space */
armature_loc_pose_to_bone(pchan, cursp, curspn);
- /* calculate new position */
- VECCOPY(pchan->loc, curspn);
+ /* copy new position */
+ if ((pchan->protectflag & OB_LOCK_LOCX)==0)
+ pchan->loc[0]= curspn[0];
+ if ((pchan->protectflag & OB_LOCK_LOCY)==0)
+ pchan->loc[1]= curspn[1];
+ if ((pchan->protectflag & OB_LOCK_LOCZ)==0)
+ pchan->loc[2]= curspn[2];
}
/* if the bone has a parent and is connected to the parent,
* don't do anything - will break chain unless we do auto-ik.
@@ -660,15 +668,14 @@
invert_m3_m3(imat, originmat);
mul_m3_v3(imat, vec);
- ob->loc[0]+= vec[0];
- ob->loc[1]+= vec[1];
- ob->loc[2]+= vec[2];
}
- else {
+ if ((ob->protectflag & OB_LOCK_LOCX)==0)
ob->loc[0]+= vec[0];
+ if ((ob->protectflag & OB_LOCK_LOCY)==0)
ob->loc[1]+= vec[1];
+ if ((ob->protectflag & OB_LOCK_LOCZ)==0)
ob->loc[2]+= vec[2];
- }
+
/* auto-keyframing */
// XXX autokeyframe_ob_cb_func(ob, TFM_TRANSLATION);
}
Modified: trunk/blender/source/blender/makesdna/DNA_screen_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_screen_types.h 2010-12-21 15:10:09 UTC (rev 33837)
+++ trunk/blender/source/blender/makesdna/DNA_screen_types.h 2010-12-21 18:55:49 UTC (rev 33838)
@@ -189,15 +189,16 @@
#define HEADERTOP 2
/* screen->full */
-#define SCREENNORMAL 0
-#define SCREENFULL 1
+#define SCREENNORMAL 0
+#define SCREENFULL 1
+#define SCREENFULLTEMP 2
/* Panel->snap - for snapping to screen edges */
#define PNL_SNAP_NONE 0
#define PNL_SNAP_TOP 1
#define PNL_SNAP_RIGHT 2
-#define PNL_SNAP_BOTTOM 4
+#define PNL_SNAP_BOTTOM 4
#define PNL_SNAP_LEFT 8
#define PNL_SNAP_DIST 9.0
Modified: trunk/blender/source/blender/makesrna/intern/rna_screen.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_screen.c 2010-12-21 15:10:09 UTC (rev 33837)
+++ trunk/blender/source/blender/makesrna/intern/rna_screen.c 2010-12-21 18:55:49 UTC (rev 33838)
@@ -83,7 +83,7 @@
static int rna_Screen_fullscreen_get(PointerRNA *ptr)
{
bScreen *sc= (bScreen*)ptr->data;
- return (sc->full == SCREENFULL);
+ return (sc->full != 0);
}
static void rna_Area_type_set(PointerRNA *ptr, int value)
More information about the Bf-blender-cvs
mailing list