// =========================================================================== // Copyright 2018 Autodesk, Inc. All rights reserved. // // Use of this software is subject to the terms of the Autodesk license // agreement provided at the time of installation or download, or which // otherwise accompanies this software in either electronic or hard copy form. // =========================================================================== // // Procedure Name: // performInterpolatorDelete // // source "performInterpolatorCreateGroup.mel"; global proc int performInterpolatorDelete() { string $tplAndTplGroupsSelected[] = getPoseEditorTreeviewSelection(3); if (size($tplAndTplGroupsSelected) == 0) { error (uiRes("m_performInterpolatorDelete.kNoTplSelected")); return 0; } string $confirm; string $tplGroupsSelected[] = getPoseEditorTreeviewSelection(0); if (size($tplGroupsSelected) == 0) $confirm = (uiRes("m_performInterpolatorDelete.kDeletePoseInterpolator")); else $confirm = (uiRes("m_performInterpolatorDelete.kDeletePoseInterpolatorGroup")); string $yes = (uiRes("m_performInterpolatorDelete.kYes")); string $no = (uiRes("m_performInterpolatorDelete.kNo")); string $result = `confirmDialog -message $confirm -button $yes -button $no -defaultButton $yes`; if ($result == $yes) { for ($item in $tplAndTplGroupsSelected) { if (startsWith($item, "-")) // pose interpolator group deletePoseInterpolatorGroup(stringRemovePrefix($item, "-")); else { // pose interpolator deletePoseInterpolatorNode($item); } } return 1; } return 0; } global proc deletePoseInterpolatorGroup(string $directoryIndex) { // Delete children of the group int $childIndices[] = `getAttr ("poseInterpolatorManager.poseInterpolatorDirectory[" + $directoryIndex + "].childIndices")`; for ($child in $childIndices) { if ($child < 0) deletePoseInterpolatorGroup(-$child); else { string $tpls[] = `listConnections -s on -d off ("poseInterpolatorManager.poseInterpolatorParent[" + $child + "]")`; if (size($tpls) == 1) deletePoseInterpolatorNode($tpls[0]); } } // Remove the group from its old parent int $parentIndex = `getAttr ("poseInterpolatorManager.poseInterpolatorDirectory[" + $directoryIndex + "].parentIndex")`; int $parentChildren[] = `getAttr ("poseInterpolatorManager.poseInterpolatorDirectory[" + $parentIndex + "].childIndices")`; string $buffer[] = stringToStringArray(intArrayToString($parentChildren, ","), ","); $buffer = stringArrayRemove({stringAddPrefix($directoryIndex, "-")}, $buffer); setPoseInterpolatorDirectoryChildren($parentIndex, $buffer); // Delete the group removeMultiInstance -b true ("poseInterpolatorManager.poseInterpolatorDirectory[" + $directoryIndex + "]"); }