2.5
authorMartin Poirier <theeth@yahoo.com>
Sun, 4 Jan 2009 19:11:56 +0000 (19:11 +0000)
committerMartin Poirier <theeth@yahoo.com>
Sun, 4 Jan 2009 19:11:56 +0000 (19:11 +0000)
Missing call to free mesh octree in post transform function.
Was breaking x-mirror

source/blender/editors/transform/transform_conversions.c

index 6b633600db78aebca2f76a194b7f583850ba20e8..2b64c16661352994bc8f5a87ec6388524fea04ff 100644 (file)
@@ -3829,6 +3829,18 @@ void special_aftertrans_update(TransInfo *t)
                /* clear flag that was set for time-slide drawing */
                saction->flag &= ~SACTION_MOVING;
        }
                /* clear flag that was set for time-slide drawing */
                saction->flag &= ~SACTION_MOVING;
        }
+       else if (t->obedit) {
+               // TRANSFORM_FIX_ME
+//             if (t->mode==TFM_BONESIZE || t->mode==TFM_BONE_ENVELOPE)
+//                     allqueue(REDRAWBUTSEDIT, 0);
+               
+               if (t->obedit->type == OB_MESH)
+               {
+                       EditMesh *em = ((Mesh *)t->obedit->data)->edit_mesh;
+                       /* table needs to be created for each edit command, since vertices can move etc */
+                       mesh_octree_table(t->obedit, em, NULL, 'e');
+               }
+       }
 #if 0 // TRANSFORM_FIX_ME
        else if (t->spacetype == SPACE_NLA) {
                recalc_all_ipos();      // bad
 #if 0 // TRANSFORM_FIX_ME
        else if (t->spacetype == SPACE_NLA) {
                recalc_all_ipos();      // bad
@@ -3865,13 +3877,6 @@ void special_aftertrans_update(TransInfo *t)
                if (G.sipo->blocktype==ID_SEQ)
                        resetslowpar= 0;
        }
                if (G.sipo->blocktype==ID_SEQ)
                        resetslowpar= 0;
        }
-       else if (t->obedit) {
-               if (t->mode==TFM_BONESIZE || t->mode==TFM_BONE_ENVELOPE)
-                       allqueue(REDRAWBUTSEDIT, 0);
-               
-               /* table needs to be created for each edit command, since vertices can move etc */
-               mesh_octree_table(t->obedit, NULL, 'e');
-       }
        else if ((t->flag & T_POSE) && (t->poseobj)) {
                bArmature *arm;
                bPose   *pose;
        else if ((t->flag & T_POSE) && (t->poseobj)) {
                bArmature *arm;
                bPose   *pose;