// =========================================================================== // 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. // =========================================================================== // // // Creation Date: March , 2005 // // Description: // This script is the interface for substitute geometry command // // Input Arguments: // $option : Whether to set the options to default values. // // Return Value: // None. // proc setOptionVars (int $forceFactorySettings) { if ($forceFactorySettings || !`optionVar -exists substDisableNonSkinDeformers`) optionVar -intValue substDisableNonSkinDeformers 0 ; if ($forceFactorySettings || !`optionVar -exists substituteRetainOldGeometry`) optionVar -intValue substituteRetainOldGeometry 0 ; if ($forceFactorySettings || !`optionVar -exists substGeomOldGeometryLayer`) optionVar -intValue substGeomOldGeometryLayer 0; if ($forceFactorySettings || !`optionVar -exists substGeomNewGeometryLayer`) optionVar -intValue substGeomNewGeometryLayer 0; if ($forceFactorySettings || !`optionVar -exists substGeomDistTolerance`) optionVar -floatValue substGeomDistTolerance 1; } global proc performSubstituteGeomSetup (string $parent, int $forceFactorySettings) { setOptionVars($forceFactorySettings); setParent $parent; $ival = `optionVar -query substDisableNonSkinDeformers` ; checkBoxGrp -edit -value1 $ival substDisableNonSkinDeformers; $ival = `optionVar -query substituteRetainOldGeometry`; checkBoxGrp -edit -value1 $ival retainOldGeometry; // display options // enable old Geometry layer option only if retain old Geometry option is ON if( $ival ) checkBoxGrp -edit -enable true substGeomOldGeometryLayer ; else checkBoxGrp -edit -enable false substGeomOldGeometryLayer ; $ival = `optionVar -query substGeomOldGeometryLayer`; checkBoxGrp -edit -value1 $ival substGeomOldGeometryLayer; $ival = `optionVar -query substGeomNewGeometryLayer`; checkBoxGrp -edit -value1 $ival substGeomNewGeometryLayer; float $fval = `optionVar -query substGeomDistTolerance`; floatSliderGrp -edit -value $fval substGeomDistTolerance ; } global proc performSubstituteGeomCallback (string $parent, int $doIt) { setParent $parent; optionVar -intValue substDisableNonSkinDeformers `checkBoxGrp -q -value1 substDisableNonSkinDeformers` ; optionVar -intValue substituteRetainOldGeometry `checkBoxGrp -q -value1 retainOldGeometry` ; optionVar -intValue substGeomOldGeometryLayer `checkBoxGrp -q -value1 substGeomOldGeometryLayer`; optionVar -intValue substGeomNewGeometryLayer `checkBoxGrp -q -value1 substGeomNewGeometryLayer`; optionVar -floatValue substGeomDistTolerance `floatSliderGrp -q -value substGeomDistTolerance` ; if ($doIt) { performSubstituteGeometry 0; addToRecentCommandQueue "performSubstituteGeometry 0" "SubstituteGeomery"; } } proc substituteGeomOptions () { string $commandName = "performSubstituteGeom"; string $callback = ($commandName + "Callback"); string $setup = ($commandName + "Setup"); string $layout = getOptionBox(); setParent $layout; setUITemplate -pushTemplate DefaultTemplate; tabLayout -scr true -tv false; string $parent = `columnLayout -adjustableColumn 1`; frameLayout -label (uiRes("m_performSubstituteGeometry.kOldGeometryOptions")) -collapsable false substGeomteryOptionsLayout; columnLayout; checkBoxGrp -cw 1 200 -label1 (uiRes("m_performSubstituteGeometry.kRetainOldGeometry")) -onc "checkBoxGrp -e -enable true substGeomOldGeometryLayer" -ofc "checkBoxGrp -e -enable false substGeomOldGeometryLayer" retainOldGeometry; checkBoxGrp -cw 1 200 -label1 (uiRes("m_performSubstituteGeometry.kMoveOldGeometry")) substGeomOldGeometryLayer; setParent $parent; setParent $parent; // display settings frameLayout -label (uiRes("m_performSubstituteGeometry.kNewGeometrySettings")) -collapse false -collapsable false substGeomDisplaySettings; columnLayout ; // layers checkBoxGrp -cw 1 200 -label1 (uiRes("m_performSubstituteGeometry.kDisableNonSkin")) substDisableNonSkinDeformers ; checkBoxGrp -cw 1 200 -label1 (uiRes("m_performSubstituteGeometry.kMoveNewGeometry")) substGeomNewGeometryLayer; floatSliderGrp -cw 1 200 -label (uiRes("m_performSubstituteGeometry.kReweightingDistance")) -field true -minValue 0.0 -maxValue 10.0 -fieldMaxValue 10000.0 substGeomDistTolerance; setParent ..; setParent ..; string $applyBtn = getOptionBoxApplyBtn(); button -edit -label (uiRes("m_performSubstituteGeometry.kSubstituteGeometry")) -command ($callback + " " + $parent + " " + 1) $applyBtn; string $saveBtn = getOptionBoxSaveBtn(); button -edit -command ($callback + " " + $parent + " " + 0 + "; hideOptionBox") $saveBtn; string $resetBtn = getOptionBoxResetBtn(); button -edit -command ($setup + " " + $parent + " " + 1) $resetBtn; setOptionBoxTitle (uiRes("m_performSubstituteGeometry.kSubstituteGeometryOptions")); // Customize the 'Help' menu item text. // setOptionBoxHelpTag( "SubstituteGeometry" ); eval (($setup + " " + $parent + " " + 0)); showOptionBox(); } // Helper method proc string assembleCmd() { string $cmd = ""; setOptionVars(false); // options int $disableNonSkinDeformers = `optionVar -query substDisableNonSkinDeformers`; int $retainGeometry = `optionVar -query substituteRetainOldGeometry`; int $createLayerOldGeometry = `optionVar -query substGeomOldGeometryLayer`; int $createLayerNewGeometry = `optionVar -query substGeomNewGeometryLayer`; float $distTolerance = `optionVar -query substGeomDistTolerance` ; // hook up node to shape manually, setup cage controls $cmd = "substituteGeometry "; if( $disableNonSkinDeformers ) $cmd += " -disableNonSkinDeformers true" ; if( $retainGeometry ) $cmd += " -retainOldGeometry" ; if( $createLayerOldGeometry ) $cmd += " -oldGeometryToLayer" ; if( $createLayerNewGeometry ) $cmd += " -newGeometryToLayer" ; $cmd += " -wdt " + $distTolerance; return $cmd; } global proc string performSubstituteGeometry(int $action) { string $cmd=""; switch ($action) { // Execute the command. // case 0: // Get the command. // $cmd = `assembleCmd`; // Execute the command with the option settings. // evalEcho($cmd); break; // Show the option box. // case 1: substituteGeomOptions; break; // Return the command string. // case 2: // Get the command. // $cmd = assembleCmd(); break ; } return $cmd; }