== Transform Snap ==
authorMartin Poirier <theeth@yahoo.com>
Tue, 16 Sep 2008 19:10:58 +0000 (19:10 +0000)
committerMartin Poirier <theeth@yahoo.com>
Tue, 16 Sep 2008 19:10:58 +0000 (19:10 +0000)
Tighten test for excluding objects as snap target.

Now exclude all object that are themselves moving (that includes childs of selected objects) as well as objects with moving geometry (like hooked meshes).

The previous situation would cause unfrequent bugs, but especially present in alignment cases (those concerned will understand).

source/blender/src/transform_snap.c

index 3c17d0c1da8f3137cb5fdf414066aa700138a06f..8c5e1f85a3d10b2d40b1789156c315bf273c2f86 100644 (file)
@@ -1173,7 +1173,7 @@ int snapObjects(int *dist, float *loc, float *no, int mode) {
        
        base= FIRSTBASE;
        for ( base = FIRSTBASE; base != NULL; base = base->next ) {
-               if ( BASE_SELECTABLE(base) && ((mode == NOT_SELECTED && (base->flag & SELECT) == 0) || (mode == NOT_ACTIVE && base != BASACT)) ) {
+               if ( BASE_SELECTABLE(base) && (base->flag & (BA_HAS_RECALC_OB|BA_HAS_RECALC_DATA)) == 0 && ((mode == NOT_SELECTED && (base->flag & (SELECT|BA_WAS_SEL)) == 0) || (mode == NOT_ACTIVE && base != BASACT)) ) {
                        Object *ob = base->object;
                        
                        if (ob->transflag & OB_DUPLI)