// =========================================================================== // 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: // uvTkBuildCutSewOptions // // Description: // Build Cut & Sew options for UV toolkit // // Input Arguments: // $parentForm - Parent form // // Return Value: // Layout to be added into form // global proc string uvTkBuildCutSewOptions(string $parentForm) { global int $gUVTkTwinBtnWth; global int $gUVTkTwinBtnHgt; uvTkSetCutSewOptionVars(0); string $layout = `frameLayout -p $parentForm -collapsable true -collapse true -lv false`; string $form = `formLayout`; string $extraOpts = (uiRes("m_uvTkBuildCutSewOptions.kExtraAnnot")); string $btnLbls[] = {(uiRes("m_uvTkBuildCutSewOptions.kAutoSeams")), // 0 (uiRes("m_uvTkBuildCutSewOptions.kCut")), // 1 (uiRes("m_uvTkBuildCutSewOptions.kCutTool")), // 2 (uiRes("m_uvTkBuildCutSewOptions.kCreateUVShell")), // 3 (uiRes("m_uvTkBuildCutSewOptions.kCreateShellGrid")), // 4 (uiRes("m_uvTkBuildCutSewOptions.kSew")), // 5 (uiRes("m_uvTkBuildCutSewOptions.kSewTool")), // 6 (uiRes("m_uvTkBuildCutSewOptions.kStitchTogether"))}; // 7 string $btnCmds[] = {"performPolyAutoSeamUV 0", "CutUVs", "setToolTo texCutUVContext; texCutContext -edit -mode Cut -i1 \\\"UV_Cut_ToolLarge.png\\\" texCutUVContext;", "CreateUVShellAlongBorder", "LayoutUVRectangle", "SewUVs", "setToolTo texCutUVContext; texCutContext -edit -mode Sew -i1 \\\"UV_Sew_ToolLarge.png\\\" texCutUVContext;", "uvTkDoStitchTogether"}; string $btnAnns[] = {(uiRes("m_uvTkBuildCutSewOptions.kAutoSeamsAnnot")) + "\n" + $extraOpts, getRunTimeCommandAnnotation ("CutUVs"), (uiRes("m_uvTkBuildCutSewOptions.kCutToolAnnot")) + "\n" + $extraOpts, getRunTimeCommandAnnotation ("CreateUVShellAlongBorder"), getRunTimeCommandAnnotation ("LayoutUVRectangle"), getRunTimeCommandAnnotation ("SewUVs"), (uiRes("m_uvTkBuildCutSewOptions.kSewToolAnnot")) + "\n" + $extraOpts, (uiRes("m_uvTkBuildCutSewOptions.kStitchTogetherAnnot"))}; string $btnShfs[] = {"performPolyAutoSeamUV 1", "", "setToolTo texCutUVContext; texCutContext -edit -mode Cut -i1 \"UV_Cut_ToolLarge.png\" texCutUVContext;toolPropertyWindow;", "", "", "", "setToolTo texCutUVContext; texCutContext -edit -mode Sew -i1 \"UV_Sew_ToolLarge.png\" texCutUVContext;toolPropertyWindow;", ""}; string $btnImgs[] = {"polyAutoSeams.png", "polyCutUV.png", "cutUVTool.png", "polyCreateUVShell.png", "polyUVRectangle.png", "polySewUV.png", "sewUVTool.png", "polyUVMultiStitch.png"}; string $btns[] = {"AutoSeamBtn", "CutUVBtn", "CutUVToolBtn", "CreateUVShellBtn", "CreateShellGridBtn", "SewUVBtn", "SewUVToolBtn", "StitchTogetherBtn"}; for($i = 0; $i < size($btnLbls); $i++) { if($btnShfs[$i] != "") $btnCmds[$i] = "if(`getModifiers`%2){"+$btnShfs[$i]+";}else{evalDeferred\""+$btnCmds[$i]+"\";}"; iconTextButton -p $form -flat false -st "iconAndTextHorizontal" -w $gUVTkTwinBtnWth -h $gUVTkTwinBtnHgt -i $btnImgs[$i] -l $btnLbls[$i] -c $btnCmds[$i] -rpt 1 -ann $btnAnns[$i] $btns[$i]; } iconTextRadioCollection uvTkStitchCollection; iconTextRadioButton -p $form -ebg 1 -st "textOnly" -w 60 -h 20 -l (uiRes("m_uvTkBuildCutSewOptions.kAtoB")) -onc "optionVar -iv uvTkStitchType 0" -ann (uiRes("m_uvTkBuildCutSewOptions.kStitchAtoBAnnot")) uvTkStitchAtoBBtn; iconTextRadioButton -p $form -ebg 1 -st "textOnly" -w 60 -h 20 -l (uiRes("m_uvTkBuildCutSewOptions.kBtoA")) -onc "optionVar -iv uvTkStitchType 1" -ann (uiRes("m_uvTkBuildCutSewOptions.kStitchBtoAAnnot")) uvTkStitchBtoABtn; formLayout -e -af $btns[0] top 5 -af $btns[0] left 5 -ac $btns[1] top 5 $btns[0] -af $btns[1] left 5 -ac $btns[2] top 5 $btns[0] -ac $btns[2] left 1 $btns[1] -ac $btns[3] top 1 $btns[1] -af $btns[3] left 5 -ac $btns[4] top 1 $btns[2] -ac $btns[4] left 1 $btns[3] -ac $btns[5] top 5 $btns[4] -af $btns[5] left 5 -ac $btns[6] top 5 $btns[4] -ac $btns[6] left 1 $btns[5] -ac $btns[7] top 1 $btns[5] -af $btns[7] left 5 -af $btns[7] bottom 5 -ac uvTkStitchAtoBBtn top 1 $btns[5] -ac uvTkStitchAtoBBtn left 1 $btns[7] -af uvTkStitchAtoBBtn bottom 5 -ac uvTkStitchBtoABtn top 1 $btns[5] -ac uvTkStitchBtoABtn left 1 uvTkStitchAtoBBtn -af uvTkStitchBtoABtn bottom 5 $form; setParent ..; setParent ..; uvTkUpdateCutSewOptions(); return $layout; } global proc uvTkSetCutSewOptionVars(int $forceFactorySettings) { if($forceFactorySettings || !`optionVar -ex uvTkStitchType`) optionVar -iv uvTkStitchType 0; } global proc uvTkUpdateCutSewOptions() { int $uvTkStitchType = `optionVar -q uvTkStitchType`; if($uvTkStitchType == 0) { if(`iconTextRadioButton -q -ex uvTkStitchAtoBBtn`) iconTextRadioButton -e -sl uvTkStitchAtoBBtn; } else if($uvTkStitchType == 1) { if(`iconTextRadioButton -q -ex uvTkStitchBtoABtn`) iconTextRadioButton -e -sl uvTkStitchBtoABtn; } } global proc uvTkDoStitchTogether() { uvTkSetCutSewOptionVars(0); int $uvTkStitchType = `optionVar -q uvTkStitchType`; evalEcho("texMultiStitch " + $uvTkStitchType); }