// =========================================================================== // 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. // =========================================================================== proc string confirmDeleteHairDialog() { string $cancel = (uiRes("m_deleteHair.kCancel")); string $deleteHairConfirm = (uiRes("m_deleteHair.kDeleteHairConfirm")); string $deleteAllHair = (uiRes("m_deleteHair.kDeleteAllHair")); string $msg = (uiRes("m_deleteHair.kDeleteAllHairsMessage")); string $retString = `confirmDialog -title $deleteHairConfirm -message $msg -messageAlign "left" -button $deleteAllHair -button $cancel -defaultButton $cancel -icon "question" -cancelButton $cancel -dismissString $cancel`; return($retString); } global proc deleteHair() { string $startSelect[] = `ls -sl`; convertHairSelection( "follicles" ); string $follicles[] = `ls -sl`; if( size( $follicles ) < 1 ){ warning( (uiRes("m_deleteHair.kNoHairForDelete")) ); select -r $startSelect; return; } else { // Check to see if we are deleting all the hair. string $commandCancelledMsg = (uiRes("m_deleteHair.kDeleteHairCancelled")); string $cancel = (uiRes("m_deleteHair.kCancel")); convertHairSelection( "hairSystems" ); string $hsys[] = `ls -sl`; if( size( $hsys ) == 1 ){ // Quick check of the number of follicles selected vs number in hair system. select -r $hsys; convertHairSelection( "follicles" ); string $allFollicles[] = `ls -sl`; if( size($follicles) == size($allFollicles)){ string $retString = confirmDeleteHairDialog(); if( $retString == $cancel ){ select -r $startSelect; warning( $commandCancelledMsg ); return; } } } else if( size( $hsys ) >= 1 ){ // Check each hair system one-by-one. for($oneHsys in $hsys){ select -r $oneHsys; convertHairSelection( "follicles" ); string $allFollicles[] = `ls -sl`; int $foundAllHair = true; for($af in $allFollicles) { int $found = false; for($bf in $follicles) { if($af == $bf){ $found = true; break; } } if(!$found){ $foundAllHair = false; break; } } if($foundAllHair){ string $retString = confirmDeleteHairDialog(); if( $retString == $cancel ){ select -r $startSelect; warning( $commandCancelledMsg ); return; } // Only show the message dialog once break; } } } } select -r $follicles; convertHairSelection( "startCurves" ); string $startCurves[] = `ls -sl`; select -r $follicles; convertHairSelection( "restCurves" ); string $restCurves[] = `ls -sl`; select -r $follicles; convertHairSelection( "currentCurves" ); string $current[] = `ls -sl`; string $all[]; appendStringArray( $all, $follicles, size($follicles)); appendStringArray( $all, $startCurves, size($startCurves)); appendStringArray( $all, $restCurves, size($restCurves)); appendStringArray( $all, $current, size($current)); delete $all; select -r; }