Revision: 39922
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39922
Author:   nazgul
Date:     2011-09-05 08:20:11 +0000 (Mon, 05 Sep 2011)
Log Message:
-----------
Partial revert commit 39878 "Fix #28280: Insert Hook wrong index"

Such load/make edit structures introduced regression into iterators
via object's geometry (vertices, edges, control points and so) when
adding hooks in the body of this iterator.

Fix for wrong index should be non-destructable for geometry.

This will fix #28506: Unusual behavior in curves.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/object/object_hook.c
    trunk/blender/source/blender/editors/object/object_relations.c

Modified: trunk/blender/source/blender/editors/object/object_hook.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_hook.c   2011-09-05 
06:53:30 UTC (rev 39921)
+++ trunk/blender/source/blender/editors/object/object_hook.c   2011-09-05 
08:20:11 UTC (rev 39922)
@@ -64,7 +64,6 @@
 
 #include "ED_curve.h"
 #include "ED_mesh.h"
-#include "ED_lattice.h"
 #include "ED_screen.h"
 
 #include "WM_types.h"
@@ -293,7 +292,7 @@
        return totvert;
 }
 
-static int object_hook_index_array(Scene *scene, Object *obedit, int *tot, int 
**indexar, char *name, float *cent_r)
+static int object_hook_index_array(Object *obedit, int *tot, int **indexar, 
char *name, float *cent_r)
 {
        *indexar= NULL;
        *tot= 0;
@@ -303,13 +302,8 @@
                case OB_MESH:
                {
                        Mesh *me= obedit->data;
-                       EditMesh *em;
+                       EditMesh *em = BKE_mesh_get_editmesh(me);
 
-                       load_editMesh(scene, obedit);
-                       make_editMesh(scene, obedit);
-
-                       em = BKE_mesh_get_editmesh(me);
-
                        /* check selected vertices first */
                        if( return_editmesh_indexar(em, tot, indexar, cent_r)) {
                                BKE_mesh_end_editmesh(me, em);
@@ -322,17 +316,10 @@
                }
                case OB_CURVE:
                case OB_SURF:
-                       load_editNurb(obedit);
-                       make_editNurb(obedit);
-
                        return return_editcurve_indexar(obedit, tot, indexar, 
cent_r);
                case OB_LATTICE:
                {
                        Lattice *lt= obedit->data;
-
-                       load_editLatt(obedit);
-                       make_editLatt(obedit);
-
                        return return_editlattice_indexar(lt->editlatt->latt, 
tot, indexar, cent_r);
                }
                default:
@@ -440,7 +427,7 @@
        int tot, ok, *indexar;
        char name[32];
        
-       ok = object_hook_index_array(scene, obedit, &tot, &indexar, name, cent);
+       ok = object_hook_index_array(obedit, &tot, &indexar, name, cent);
        
        if (!ok) return;        // XXX error("Requires selected vertices or 
active Vertex Group");
        
@@ -773,7 +760,7 @@
        
        /* assign functionality */
        
-       if(!object_hook_index_array(CTX_data_scene(C), ob, &tot, &indexar, 
name, cent)) {
+       if(!object_hook_index_array(ob, &tot, &indexar, name, cent)) {
                BKE_report(op->reports, RPT_WARNING, "Requires selected 
vertices or active vertex group");
                return OPERATOR_CANCELLED;
        }

Modified: trunk/blender/source/blender/editors/object/object_relations.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_relations.c      
2011-09-05 06:53:30 UTC (rev 39921)
+++ trunk/blender/source/blender/editors/object/object_relations.c      
2011-09-05 08:20:11 UTC (rev 39922)
@@ -91,8 +91,6 @@
 
 #include "ED_armature.h"
 #include "ED_curve.h"
-#include "ED_lattice.h"
-#include "ED_mesh.h"
 #include "ED_keyframing.h"
 #include "ED_object.h"
 #include "ED_screen.h"
@@ -124,13 +122,8 @@
        
        if(obedit->type==OB_MESH) {
                Mesh *me= obedit->data;
-               EditMesh *em;
+               EditMesh *em = BKE_mesh_get_editmesh(me);
 
-               load_editMesh(scene, obedit);
-               make_editMesh(scene, obedit);
-
-               em = BKE_mesh_get_editmesh(me);
-
                eve= em->verts.first;
                while(eve) {
                        if(eve->f & 1) {
@@ -147,12 +140,7 @@
                BKE_mesh_end_editmesh(me, em);
        }
        else if(ELEM(obedit->type, OB_SURF, OB_CURVE)) {
-               ListBase *editnurb;
-
-               load_editNurb(obedit);
-               make_editNurb(obedit);
-
-               editnurb= curve_get_editcurve(obedit);
+               ListBase *editnurb= curve_get_editcurve(obedit);
                
                cu= obedit->data;
 
@@ -192,13 +180,8 @@
                }
        }
        else if(obedit->type==OB_LATTICE) {
-               Lattice *lt;
-
-               load_editLatt(obedit);
-               make_editLatt(obedit);
-
-               lt= obedit->data;
-
+               Lattice *lt= obedit->data;
+               
                a= 
lt->editlatt->latt->pntsu*lt->editlatt->latt->pntsv*lt->editlatt->latt->pntsw;
                bp= lt->editlatt->latt->def;
                while(a--) {

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to