This patch exposes functionality for performing partial mesh updates
for normal calculation and face tessellation while transforming a mesh.
The partial update data only needs to be generated once,
afterwards the cached connectivity information can be reused
(with the exception of changing proportional editing radius).
Currently this is only used for transform, in the future it could be
used for other operators as well as the transform panel.
The best-case overall speedup while transforming geometry is about
1.45x since the time to update a small number of normals and faces is
negligible.
For an additional speedup partial face tessellation is multi-threaded,
this gives ~15x speedup on my system (timing tessellation alone).
Exact results depend on the number of CPU cores available.
Notes:
- Partial updates to normals is by @Germano Cavalcante (mano-wii) from patch D11283.
- Logic from this patch can be used to multi-thread all face tessellation (not only partial updates).
- Partial updates could be used for other tools that deform/transform vertices, although there aren't many cases where it seems urgent.
As mentioned in the commit message: the vertex transform panel is a candidate for this, although this needs changes to the interface code to support this functionality.
Most other deforming operators aren't interactive, or they use operator redo.