[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [40343] trunk/blender/source/blender/ editors/object: Fix for add hook/vertex parent for meshes
Sergey Sharybin
g.ulairi at gmail.com
Mon Sep 19 10:25:32 CEST 2011
Revision: 40343
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40343
Author: nazgul
Date: 2011-09-19 08:25:31 +0000 (Mon, 19 Sep 2011)
Log Message:
-----------
Fix for add hook/vertex parent for meshes
The only way to achieve this is to re-load editMesh.
After this commit you can't iterate through vertices and insert
hooks/parents from script anymore -- this operators are now
treated as topology-changing and shouldn't be used when iterating
via geometries.
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-19 08:11:30 UTC (rev 40342)
+++ trunk/blender/source/blender/editors/object/object_hook.c 2011-09-19 08:25:31 UTC (rev 40343)
@@ -292,7 +292,7 @@
return totvert;
}
-static int object_hook_index_array(Object *obedit, int *tot, int **indexar, char *name, float *cent_r)
+static int object_hook_index_array(Scene *scene, Object *obedit, int *tot, int **indexar, char *name, float *cent_r)
{
*indexar= NULL;
*tot= 0;
@@ -302,8 +302,13 @@
case OB_MESH:
{
Mesh *me= obedit->data;
- EditMesh *em = BKE_mesh_get_editmesh(me);
+ EditMesh *em;
+ 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);
@@ -427,7 +432,7 @@
int tot, ok, *indexar;
char name[32];
- ok = object_hook_index_array(obedit, &tot, &indexar, name, cent);
+ ok = object_hook_index_array(scene, obedit, &tot, &indexar, name, cent);
if (!ok) return; // XXX error("Requires selected vertices or active Vertex Group");
@@ -760,7 +765,7 @@
/* assign functionality */
- if(!object_hook_index_array(ob, &tot, &indexar, name, cent)) {
+ if(!object_hook_index_array(CTX_data_scene(C), 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-19 08:11:30 UTC (rev 40342)
+++ trunk/blender/source/blender/editors/object/object_relations.c 2011-09-19 08:25:31 UTC (rev 40343)
@@ -95,6 +95,7 @@
#include "ED_object.h"
#include "ED_screen.h"
#include "ED_view3d.h"
+#include "ED_mesh.h"
#include "object_intern.h"
@@ -122,8 +123,13 @@
if(obedit->type==OB_MESH) {
Mesh *me= obedit->data;
- EditMesh *em = BKE_mesh_get_editmesh(me);
+ EditMesh *em;
+ load_editMesh(scene, obedit);
+ make_editMesh(scene, obedit);
+
+ em = BKE_mesh_get_editmesh(me);
+
eve= em->verts.first;
while(eve) {
if(eve->f & 1) {
More information about the Bf-blender-cvs
mailing list