curve_assign_shapekey: Fix for condition where target has existing shapekeys and basis shape key is different than curve

This commit is contained in:
Shrinivas 2020-01-17 20:25:19 +05:30
parent ea276ab9d5
commit 946ad9c4fa
1 changed files with 6 additions and 8 deletions

View File

@ -407,7 +407,8 @@ def main(targetObj, shapekeyObjs, removeOriginal, space, matchParts, \
shapekeys = [Path(c) for c in shapekeyObjs]
shapekeys = getExistingShapeKeyPaths(target) + shapekeys
existingKeys = getExistingShapeKeyPaths(target)
shapekeys = existingKeys + shapekeys
userSel = [target] + shapekeys
for path in userSel:
@ -431,13 +432,10 @@ def main(targetObj, shapekeyObjs, removeOriginal, space, matchParts, \
for j, part in enumerate(path.parts):
part.toClose = allToClose[j]
if(targetObj.data.shape_keys != None):
skName = targetObj.data.shape_keys.key_blocks[0].name
else:
skName = 'Basis'
target.updateCurve()
target.curve.shape_key_add(name = skName)
if(len(existingKeys) == 0):
target.curve.shape_key_add(name = 'Basis')
addShapeKeys(target.curve, shapekeys, space)
@ -714,7 +712,7 @@ def getExistingShapeKeyPaths(path):
paths = []
if(obj.data.shape_keys != None):
keyblocks = obj.data.shape_keys.key_blocks[1:]#Skip basis
keyblocks = obj.data.shape_keys.key_blocks[:]
for key in keyblocks:
datacopy = obj.data.copy()
i = 0