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.
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.
Use quite easy and stupid approach like it used for shape keys:
re-make editmesh (editcurve or editlattice) before creating index array
for hook or storing vertex index in parenting object.
Even if hook was added in "current" edit mode, it should be re-mapped on
loading edit data because topology could be changed after it was created.
Such kind of re-loading edit structures is the easiest way for now to
update keyindexes to relevant state.
Also, fixed bug with not re-mapping indices for vertex-parented objects.
Really old error, not sure why it wasn't noticed yet.
conections
It seems that some of the Outliner hacks used while building the tree
was causing problems, as Make Single User (and potentially other code
working with ID-data, specifically with the "newid" value there) was
making use of the variable used there for other purposes, leading to
memory corruption.
This bug also occurred in 2.4x, though when I tested there, it crashed
immediately.
Ton, you may want to double-check this bug!
also minor functional changes
- OBJECT_OT_make_links_data() type property is now assigned to the operator property (so popup menu can find it)
- removing BG image now returns cancelled if no image is removed.
- OpenGL still render failed when output format was set to Movie.
Now it just doesn't save a file and renders anyway.
- Bone heat weight was missing 'wait cursor'.
- Waitcursor for Mac Cocoa is back! Made all OS's use the same
nice hourglass cursor.
(Note: this violates Mac UI guidelines, we should rely on the
spinning wheel of death instead. Highly disputable that.)
"Make Local" option "Objects and Data" made materials get
lost on save, the tagging was incorrect. Now it makes
Materials local too.
Implementation note: the code is new (not 2.4) so it misses
some of the hairy goodies we had. It's something for another
time to really make this reliably work.
Makes adding new flags give ambiguous results and also makes it less easy to tell whats intended.
In some places it looks like OB_RECALC_TIME should be left out too.
only tags the ID and does the actual flush/update delayed, before the next
redraw. For objects the update was already delayed, just flushing wasn't
yet.
This should help performance in python and animation editors, by making
calls to RNA property update quicker. Still need to add calls in a few
places where this was previously avoided due to bad performance.
Fixed old annoyance in Search menu, with a load of object-mode
operators showing up in editmode.
It's much cleaner now, but it will take further work and
investigation to have context & polls work satisfying for all cases.
- object updates were not being flushed, so children weren't updating.
- apply the matrix relative to the parent, added this as an option to object_apply_mat4() which allows assigning the worldspace matrix in python without worrying about the parent.