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