Issue was caused by object moved really far away (not just actually issue,
it's just about long mouse gesture and X-axis orientation which projects
position to quite large X-axis value) and for this location start offset
from curve length was calculating iteratively which takes plenty of time for
short curves.
Replace iterative search of offset with formula which seems to be working
in the same way and should be a bit more accurate.
* Skip calculation of merge indices if merging isn't enabled
* Clean up usage of BMesh operators to fix small memory leak
* Fix harmless BLI_assert in CustomData_bmesh_merge
* Another null-initialization fix in CustomData_bmesh_merge
Two fixes:
* The find-doubles operator was overriding the "dirty" element
indices, so vertices were not being mapped correctly.
* In some cases a vertex can be set to merge with a vertex that is
also set to be merged, so added a loop to find the first unmerged
vert in this case.
Not yet working is the "First Last" merge option.
Also made some cleanups and added comments in the array/remove doubles
code.
wire edges connected to the vertex would confuse vertex rip.
- was only checking verts first edge had a face, this is incorrect since other vert-edges may have a face.
- wasn't checking of edges connected to the vertex were hidden.
solidify had a limit imposed on how far vertices could move which didnt work well, removed (the modifier doesnt do this).
also missed freeing 2 arrays.
* An offset object can rotate output, so need to update normals to
reflect that. Fix by adding a normals recalc, but only if there's an
offset object.
* Added BMESH_TODO comment to check whether there are other cases were
normals need to be updated.
* Array modifier creates BMesh from DM; add missing CD_CREASE layer
for edge creases.
* With a modifier stack like mirror+subsurf+array, face normals were
wrong. Fix by removing CD_NORMAL layer from CCGDM output. Previously
the elements in this layer were simply copied, so they did not
reflect subdivision correctly.
* Minor style fixes in bmo_dupe.c.
Issues not yet addressed:
* Subsurf's optimal draw setting for hiding subdivision edges is not
respected by the array output.
* Slowdown issue; array modifier is much slower than in 2.62.
added access to deform weights, access to weights acts like a python dict so you can do...
print(group in dvert)
dvert[group] = 0.5
print(dvert[group])
del dvert[group]
print(dvert.items())
Behavior now matches 2.62, circle, cone, and cylinder get first vertex
at 0 degrees.
Also fixed range for vertex property of add-cone and add-cylinder
operators, changed minumum from two to three.
Three fixes:
* When smoothing a coord, the original position should be based off
the unsmoothed subdivision (i.e. the vertex coord rather than the
smoothed position in the shapekey)
* The normal of new vertices created by edge split must be updated
(used the same interpolation as pre-bmesh here)
* The vertices created inside the subdivided face should use the
subdivided coords from edges, so copy the shapekey coords back to
vertex coords after subdividing edges