problem was that BMesh had tessellation call when undo pushes were called.
if python called an operator with no undo push, tessfaces would not be created.
fix this by making it the responsibility of each editmesh operator to re-tessellate, as it is with notifiers and depsgraph.
added EDBM_update_generic() function to add notifier, tag for depsgraph update and optionally re-tessellate.
After discussion with Campbell we found much nicer solution which
keeps operation with data much more clear:
- Refresh Sequencer is totally harmless, do not touch actual data
and just removes everything from cache
- Reload Strip will reload data and adjust it's length for all
selected strips without affecting on length of strip itself
- Reload Strip and Adjust length will do the same but will also
adjust length of strip itself.
added option to edgesplit bmesh operator to take tagged vertices as well so an edge at a boundary can split without splitting off the boundary vertex.
the behavior/speed of the edge split modifier and tool remainss the same, this is only used for rip.
Issue was caused by mapping old buttons to new buttons. Render slot button in header
holds RenerResult for particular slot, but in N-panel it holds RenderResult from RenderEngine.
So what was happening is: switching render slot to empty slot makes slot button in header
contain NULL as button function's argument, but old button holds RenderResult for rendered
image, so this two buttons aren't equal and so button isn't getting activated and no scrolling
happens.
Making slot button hold RenderResult directly from RenderEngine (as it's happening with
buttons in N-panel) makes old->new buttons mapping work correct and it's possible
to alt-scroll smoothly
render results would be displayed on loading new files if the scene names matches, now free render-results so as not to display stale data - also saves some memory.
* This patch adds a influence slider for the lattice modifier, which affects the strength of the deformation.
Patch by Patrick Boelens (senshi), thanks a lot!
Problem was that area calculation of polygons was done relative to the xy plane, and with a very obscure (to me at least) algorithm. That meant that vertical ngons would get 0 area.
Commented initial code in case this is a strange optimization case that someone wants to use and used a cleaner algorithm: first project vertices to the ngon plane, defined by the normal of the ngon and the center (mean) of the ngon vertices. This will only be exact for convex and mostly planar ngons, still it is much better than the previous code.
Also fixed memory leak when stretch display was on.
Fix edge case for clamp_index() with any negative 'x' that is a
multiple of 'len', was returning 'len' which is invalid index.
Maybe the expression can be simplified back to a one-liner?