// =========================================================================== // 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: 4 April 1997 // // Procedure Name: // performPolyQuadrangulate // // Description: // quadrangulate the selected polygon faces // // Input Arguments: // $option : Whether to set the options to default values. // Return Value: // command string iff $option==2 // proc setOptionVars (int $forceFactorySettings) { if ($forceFactorySettings || !`optionVar -exists polyQuadrangulateAngle`) optionVar -floatValue polyQuadrangulateAngle 30.0; if ($forceFactorySettings || !`optionVar -exists polyQuadrangulateGroupBorder`) optionVar -intValue polyQuadrangulateGroupBorder 1; if ($forceFactorySettings || !`optionVar -exists polyQuadrangulateTextureBorder`) optionVar -intValue polyQuadrangulateTextureBorder 1; if ($forceFactorySettings || !`optionVar -exists polyQuadrangulateHardEdges`) optionVar -intValue polyQuadrangulateHardEdges 1; if ($forceFactorySettings || !`optionVar -exists polyQuadrangulateWorldSpace`) optionVar -intValue polyQuadrangulateWorldSpace 1; } global proc performPolyQuadrangulateSetup (string $parent, int $forceFactorySettings) { setOptionVars($forceFactorySettings); setParent $parent; float $fval = `optionVar -query polyQuadrangulateAngle`; floatSliderGrp -edit -value $fval polyQuadrangulateAngle; int $ival = `optionVar -query polyQuadrangulateGroupBorder`; checkBoxGrp -edit -value1 $ival polyQuadrangulateGroupBorder; $ival = `optionVar -query polyQuadrangulateTextureBorder`; checkBoxGrp -edit -value1 $ival polyQuadrangulateTextureBorder; $ival = `optionVar -query polyQuadrangulateHardEdges`; checkBoxGrp -edit -value1 $ival polyQuadrangulateHardEdges; $ival = `optionVar -query polyQuadrangulateWorldSpace`; checkBoxGrp -edit -value1 $ival polyQuadrangulateWorldSpace; } global proc performPolyQuadrangulateCallback (string $parent, int $doIt) { // print ("performPolyQuadrangulateCallback " + $doIt + "\n"); setParent $parent; optionVar -floatValue polyQuadrangulateAngle `floatSliderGrp -query -value polyQuadrangulateAngle`; optionVar -intValue polyQuadrangulateGroupBorder `checkBoxGrp -query -value1 polyQuadrangulateGroupBorder`; optionVar -intValue polyQuadrangulateTextureBorder `checkBoxGrp -query -value1 polyQuadrangulateTextureBorder`; optionVar -intValue polyQuadrangulateHardEdges `checkBoxGrp -query -value1 polyQuadrangulateHardEdges`; optionVar -intValue polyQuadrangulateWorldSpace `checkBoxGrp -query -value1 polyQuadrangulateWorldSpace`; if ($doIt) { performPolyQuadrangulate 0; addToRecentCommandQueue "performPolyQuadrangulate 0" "PolyQuadrangulate"; } } proc polyQuadrangulateOptions () { // Global template variables for form spacing global int $gOptionBoxTemplateFrameSpacing; // print ("polyQuadrangulateOptions\n"); string $commandName = "performPolyQuadrangulate"; string $callback = ($commandName + "Callback"); string $setup = ($commandName + "Setup"); string $layout = getOptionBox(); setParent $layout; setUITemplate -pushTemplate OptionBoxTemplate; waitCursor -state 1; // Form layout string $parent = `formLayout polyQuadrangulateOptions`; // Settings frame string $settingsFrame = `frameLayout -label (uiRes("m_performPolyQuadrangulate.kSettingsFrame"))`; columnLayout; floatSliderGrp -label (uiRes("m_performPolyQuadrangulate.kAngleThreshold")) -min 0. -max 180. -fmn 0. -fmx 180. polyQuadrangulateAngle; checkBoxGrp -label1 (uiRes("m_performPolyQuadrangulate.kKeepFaceGroup")) polyQuadrangulateGroupBorder; checkBoxGrp -label1 (uiRes("m_performPolyQuadrangulate.kKeepHardEdges")) polyQuadrangulateHardEdges; checkBoxGrp -label1 (uiRes("m_performPolyQuadrangulate.kKeepTextureBorder")) polyQuadrangulateTextureBorder; checkBoxGrp -label1 (uiRes("m_performPolyQuadrangulate.kWorldSpaceCoord")) polyQuadrangulateWorldSpace; setParent $parent; setParent ..; // Attach frame to form layout formLayout -e -af $settingsFrame "top" $gOptionBoxTemplateFrameSpacing -af $settingsFrame "left" $gOptionBoxTemplateFrameSpacing -af $settingsFrame "right" $gOptionBoxTemplateFrameSpacing -an $settingsFrame "bottom" $parent; waitCursor -state 0; setUITemplate -popTemplate; string $applyBtn = getOptionBoxApplyBtn(); button -edit -label (uiRes("m_performPolyQuadrangulate.kQuadButton")) -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_performPolyQuadrangulate.kQuadOptions")) ); // Customize the 'Help' menu item text. // setOptionBoxHelpTag( "Quadrangulate" ); eval (($setup + " " + $parent + " " + 0)); showOptionBox(); } global proc string performPolyQuadrangulate (int $option) { string $cmd=""; string $sel[]; float $fval; int $iv2, $ival, $iv3, $ivWS; switch ($option) { case 0: setOptionVars(false); $fval = `optionVar -query polyQuadrangulateAngle`; $iv2 = `optionVar -query polyQuadrangulateTextureBorder`; $ival = `optionVar -query polyQuadrangulateGroupBorder`; $iv3 = `optionVar -query polyQuadrangulateHardEdges`; $ivWS = `optionVar -query polyQuadrangulateWorldSpace`; $cmd =("polyQuad -a " + $fval + " -kgb " + $ival + " -ktb " + $iv2 + " -khe " + $iv3 + " -ws " + $ivWS ); polyPerformAction $cmd f 0; break; case 1: polyQuadrangulateOptions; break; default: setOptionVars(false); $fval = `optionVar -query polyQuadrangulateAngle`; $iv2 = `optionVar -query polyQuadrangulateTextureBorder`; $ival = `optionVar -query polyQuadrangulateGroupBorder`; $iv3 = `optionVar -query polyQuadrangulateHardEdges`; $ivWS = `optionVar -query polyQuadrangulateWorldSpace`; $cmd =("polyQuad -a " + $fval + " -kgb " + $ival + " -ktb " + $iv2 + " -khe " + $iv3 + " -ws " + $ivWS ); $cmd = ("polyPerformAction \"" + $cmd + "\" f 0"); // $cmd ="performPolyQuadrangulate 0"; } return $cmd; }