// =========================================================================== // 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. // =========================================================================== // -------------------------------------------------------------------------- // -------------------------------------------------------------------------- // UI Procs // -------------------------------------------------------------------------- // -------------------------------------------------------------------------- /* * cMuscleWeightPruneUI() - UI For default weight stuff */ global proc cMuscleWeightPruneUI() { global int $gCMusclePaint_wtCnt ; global string $gCMusclePaint_wtLabels[] ; if (!`pluginInfo -q -loaded "MayaMuscle"`) error (uiRes("m_cMuscleWeightPruneUI.kMustLoadMusclePlugin")); if (`window -q -ex cMuscleWeightPruneUIWin`) { showWindow cMuscleWeightPruneUIWin ; return ; } window -w 290 -h 145 -t (uiRes("m_cMuscleWeightPruneUI.kWindowTitlePruneWeights")) cMuscleWeightPruneUIWin ; scrollLayout mainMuscleWeightPruneUIScrollLayout; formLayout -parent mainMuscleWeightPruneUIScrollLayout mainWtForm ; optionMenu -l (uiRes("m_cMuscleWeightPruneUI.kWeights")) omWts ; int $i ; for ($i=0; $i < $gCMusclePaint_wtCnt; ++$i) menuItem -l ($gCMusclePaint_wtLabels[ $i ]) ; // menuItem -l "Sticky A" ; // menuItem -l "Sticky B" ; // menuItem -l "Sticky C" ; // menuItem -l "Sliding" ; // menuItem -l "Direction" ; // menuItem -l "Force" ; // menuItem -l "Jiggle" ; // menuItem -l "Cycle" ; // menuItem -l "Rest" ; // menuItem -l "Relax" ; // menuItem -l "Wrinkle" ; // menuItem -l "Smooth" ; // optionMenu -e -sl 1 -cc ("cMuscle_updateWeightDefaultUI();") omWts ; text -l (uiRes("m_cMuscleWeightPruneUI.kPruneWeightsIfLessThan")) txPrePruneWD ; floatField -v 0.001 -min 0.0 -max 1024 -w 60 ffPruneWD ; text -l (uiRes("m_cMuscleWeightPruneUI.kPruneWeightsIfLessThan2")) txPruneWD ; popupMenu -p ffPruneWD ; menuItem -l "1" -c ("floatField -e -v 1 ffPruneWD ;") ; menuItem -l "2" -c ("floatField -e -v 2 ffPruneWD ;") ; menuItem -l "3" -c ("floatField -e -v 3 ffPruneWD ;") ; menuItem -l "4" -c ("floatField -e -v 4 ffPruneWD ;") ; menuItem -l "5" -c ("floatField -e -v 5 ffPruneWD ;") ; button -l (uiRes("m_cMuscleWeightPruneUI.kPruneWeights")) -w 300 -c ("cMuscleWeightPruneUICB();") -ann (uiRes("m_cMuscleWeightPruneUI.kPruneWeightsAnnot")) btnPruneWeight ; formLayout -e -af omWts "top" 5 -an omWts "bottom" -af omWts "left" 5 -an omWts "right" -ac txPrePruneWD "top" 8 omWts -an txPrePruneWD "bottom" -af txPrePruneWD "left" 5 -an txPrePruneWD "right" -ac ffPruneWD "top" 5 omWts -an ffPruneWD "bottom" -ac ffPruneWD "left" 0 txPrePruneWD -an ffPruneWD "right" -ac txPruneWD "top" 8 omWts -an txPruneWD "bottom" -ac txPruneWD "left" 5 ffPruneWD -an txPruneWD "right" -ac btnPruneWeight "top" 8 ffPruneWD -an btnPruneWeight "bottom" -af btnPruneWeight "left" 5 -af btnPruneWeight "right" 5 mainWtForm ; showWindow cMuscleWeightPruneUIWin ; } // -------------------------------------------------------------------------- /* * cMuscleWeightPruneUICB() - UI Wrapper */ global proc cMuscleWeightPruneUICB() { global int $gCMusclePaint_wtCnt ; global string $gCMusclePaint_wtNames[] ; global string $gCMusclePaint_wtLabels[] ; global int $gCMusclePaint_wtNormalize[] ; int $idxWt = `optionMenu -q -sl omWts` - 1; string $strWt = `optionMenu -q -v omWts` ; float $fPrune = `floatField -q -v ffPruneWD` ; int $bNormalize = $gCMusclePaint_wtNormalize[$idxWt] ; string $strWtName = $gCMusclePaint_wtNames[$idxWt] ; string $mSs[] = cMuscle_getSelectedDeformers("cMuscleSystem") ; string $mS ; string $objs[] = `ls -sl -l`; // Now call real command.... // for ($mS in $mSs) { cMuscle_fixDisconnected($mS) ; string $comps[] = cMuscle_getSelComps($mS, true) ; select -r $comps ; cMuscleWeightPrune -system $mS -weight $strWtName -normalize $bNormalize -prune $fPrune ; } if (size($objs) > 0) // reselect select $objs ; } // --------------------------------------------------------------------------