svn merge -r 21041:21301 https://svn.blender.org/svnroot/bf-blender/branches/blender2...
[blender.git] / source / blender / editors / transform / transform_snap.c
index 729011103884d83b7389eaa644e93707d11fe48e..0b9a176dbdf42e18efd09403538ff6a74b37ff0c 100644 (file)
@@ -210,7 +210,7 @@ int  handleSnapping(TransInfo *t, wmEvent *event)
        if (BIF_snappingSupported(t->obedit) && event->type == TABKEY && event->shift)
        {
                /* toggle snap and reinit */
-               t->scene->snap_flag ^= SCE_SNAP;
+               t->settings->snap_flag ^= SCE_SNAP;
                initSnapping(t, NULL);
                status = 1;
        }
@@ -282,10 +282,10 @@ int validSnappingNormal(TransInfo *t)
 
 void initSnapping(TransInfo *t, wmOperator *op)
 {
-       Scene *scene = t->scene;
+       ToolSettings *ts = t->settings;
        Object *obedit = t->obedit;
        int snapping = 0;
-       short snap_mode = t->scene->snap_target;
+       short snap_mode = t->settings->snap_target;
        
        resetSnapping(t);
        
@@ -310,8 +310,8 @@ void initSnapping(TransInfo *t, wmOperator *op)
        }
        else
        {
-               snapping = ((scene->snap_flag & SCE_SNAP) == SCE_SNAP);
-               t->tsnap.align = ((t->scene->snap_flag & SCE_SNAP_ROTATE) == SCE_SNAP_ROTATE);
+               snapping = ((ts->snap_flag & SCE_SNAP) == SCE_SNAP);
+               t->tsnap.align = ((t->settings->snap_flag & SCE_SNAP_ROTATE) == SCE_SNAP_ROTATE);
        }
        
        if ((t->spacetype == SPACE_VIEW3D || t->spacetype == SPACE_IMAGE) && // Only 3D view or UV
@@ -542,7 +542,7 @@ void CalcSnapGeometry(TransInfo *t, float *vec)
                int dist = SNAP_MIN_DISTANCE; // Use a user defined value here
                SnapMode mode;
                
-               if (t->scene->snap_mode == SCE_SNAP_MODE_VOLUME)
+               if (t->settings->snap_mode == SCE_SNAP_MODE_VOLUME)
                {
                        ListBase depth_peels;
                        DepthPeel *p1, *p2;
@@ -575,7 +575,7 @@ void CalcSnapGeometry(TransInfo *t, float *vec)
                                        p1->flag = 1;
                
                                        /* if peeling objects, take the first and last from each object */                      
-                                       if (t->scene->snap_flag & SCE_SNAP_PEEL_OBJECT)
+                                       if (t->settings->snap_flag & SCE_SNAP_PEEL_OBJECT)
                                        {
                                                DepthPeel *peel;
                                                for (peel = p1->next; peel; peel = peel->next)
@@ -1346,6 +1346,7 @@ int snapDerivedMesh(short snap_mode, ARegion *ar, Object *ob, DerivedMesh *dm, E
 
 int snapObject(Scene *scene, ARegion *ar, Object *ob, int editobject, float obmat[][4], float ray_start[3], float ray_normal[3], short mval[2], float *loc, float *no, int *dist, float *depth)
 {
+       ToolSettings *ts= scene->toolsettings;
        int retval = 0;
        
        if (ob->type == OB_MESH) {
@@ -1363,13 +1364,13 @@ int snapObject(Scene *scene, ARegion *ar, Object *ob, int editobject, float obma
                        dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH);
                }
                
-               retval = snapDerivedMesh(scene->snap_mode, ar, ob, dm, em, obmat, ray_start, ray_normal, mval, loc, no, dist, depth);
+               retval = snapDerivedMesh(ts->snap_mode, ar, ob, dm, em, obmat, ray_start, ray_normal, mval, loc, no, dist, depth);
 
                dm->release(dm);
        }
        else if (ob->type == OB_ARMATURE)
        {
-               retval = snapArmature(scene->snap_mode, ar, ob, ob->data, obmat, ray_start, ray_normal, mval, loc, no, dist, depth);
+               retval = snapArmature(ts->snap_mode, ar, ob, ob->data, obmat, ray_start, ray_normal, mval, loc, no, dist, depth);
        }
        
        return retval;