// =========================================================================== // 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. // =========================================================================== // // provided at the time of installation or download, or which otherwise accompanies global proc ilrUpdateAEFileOptions(string $parent, string $node) { string $oldParent = `setParent -q`; setParent $parent; if (`attributeQuery -exists -node $node "ilrZbrush"`) { string $redMenuName = "ilrRedLayerMenuGrp|OptionMenu"; string $greenMenuName = "ilrGreenLayerMenuGrp|OptionMenu"; string $blueMenuName = "ilrBlueLayerMenuGrp|OptionMenu"; string $alphaMenuName = "ilrAlphaLayerMenuGrp|OptionMenu"; string $redItem; string $redItemArray[] = `optionMenuGrp -query -itemListLong ilrRedLayerMenuGrp`; for ($redItem in $redItemArray) { deleteUI -menuItem $redItem; } string $greenItem; string $greenItemArray[] = `optionMenuGrp -query -itemListLong ilrGreenLayerMenuGrp`; for ($greenItem in $greenItemArray) { deleteUI -menuItem $greenItem; } string $blueItem; string $blueItemArray[] = `optionMenuGrp -query -itemListLong ilrBlueLayerMenuGrp`; for ($blueItem in $blueItemArray) { deleteUI -menuItem $blueItem; } string $alphaItem; string $alphaItemArray[] = `optionMenuGrp -query -itemListLong ilrAlphaLayerMenuGrp`; for ($alphaItem in $alphaItemArray) { deleteUI -menuItem $alphaItem; } // Get all layers in the file // string $layerArray[]; string $filePath = `getAttr ($node + ".fileTextureName")`; if (size($filePath) > 0) { catch( $layerArray = eval("ilrGetFileLayersCmd(\"" + $filePath + "\")") ); } $redLayerAttribute = $node + ".ilrLayerR"; $greenLayerAttribute = $node + ".ilrLayerG"; $blueLayerAttribute = $node + ".ilrLayerB"; $alphaLayerAttribute = $node + ".ilrLayerA"; if (size($layerArray) == 0) { setAttr -type "string" $redLayerAttribute ""; setAttr -type "string" $greenLayerAttribute ""; setAttr -type "string" $blueLayerAttribute ""; setAttr -type "string" $alphaLayerAttribute ""; optionMenuGrp -edit -enable false ilrRedLayerMenuGrp; optionMenuGrp -edit -enable false ilrGreenLayerMenuGrp; optionMenuGrp -edit -enable false ilrBlueLayerMenuGrp; optionMenuGrp -edit -enable false ilrAlphaLayerMenuGrp; return; } // Create one menu item for each layer // for ($layer in $layerArray) { menuItem -label $layer -parent ($parent + "|ilrRedLayerMenuGrp|OptionMenu"); menuItem -label $layer -parent ($parent + "|ilrGreenLayerMenuGrp|OptionMenu"); menuItem -label $layer -parent ($parent + "|ilrBlueLayerMenuGrp|OptionMenu"); menuItem -label $layer -parent ($parent + "|ilrAlphaLayerMenuGrp|OptionMenu"); } // Select the current layer. If no layer is current // make the first ones the current one // string $redSelectedLayer = `getAttr $redLayerAttribute`; if (size($redSelectedLayer) == 0 || stringArrayCount($redSelectedLayer, $layerArray) == 0) { $redSelectedLayer = ""; for ($layer in $layerArray) { if ($layer == "R" || $layer == "r") { $redSelectedLayer = $layer; break; } } if ($redSelectedLayer == "") { setAttr -type "string" $redLayerAttribute $layerArray[0]; $redSelectedLayer = $layerArray[0]; } } optionMenuGrp -edit -value $redSelectedLayer ilrRedLayerMenuGrp; string $greenSelectedLayer = `getAttr $greenLayerAttribute`; if (size($greenSelectedLayer) == 0 || stringArrayCount($greenSelectedLayer, $layerArray) == 0) { $greenSelectedLayer = ""; for ($layer in $layerArray) { if ($layer == "G" || $layer == "g") { $greenSelectedLayer = $layer; break; } } if ($greenSelectedLayer == "") { $idx = 1; if (size($layerArray) < 3) { $idx = 0; } setAttr -type "string" $greenLayerAttribute $layerArray[$idx]; $greenSelectedLayer = $layerArray[$idx]; } } optionMenuGrp -edit -value $greenSelectedLayer ilrGreenLayerMenuGrp; string $blueSelectedLayer = `getAttr $blueLayerAttribute`; if (size($blueSelectedLayer) == 0 || stringArrayCount($blueSelectedLayer, $layerArray) == 0) { $blueSelectedLayer = ""; for ($layer in $layerArray) { if ($layer == "B" || $layer == "b") { $blueSelectedLayer = $layer; break; } } if ($blueSelectedLayer == "") { $idx = 2; if (size($layerArray) < 3) { $idx = 0; } setAttr -type "string" $blueLayerAttribute $layerArray[$idx]; $blueSelectedLayer = $layerArray[$idx]; } } optionMenuGrp -edit -value $blueSelectedLayer ilrBlueLayerMenuGrp; string $alphaSelectedLayer = `getAttr $alphaLayerAttribute`; if (size($alphaSelectedLayer) == 0 || stringArrayCount($alphaSelectedLayer, $layerArray) == 0) { $alphaSelectedLayer = ""; for ($layer in $layerArray) { if ($layer == "A" || $layer == "a") { $alphaSelectedLayer = $layer; break; } } if ($alphaSelectedLayer == "") { $idx = 3; if (size($layerArray) < 4) { $idx = 0; } setAttr -type "string" $alphaLayerAttribute $layerArray[$idx]; $alphaSelectedLayer = $layerArray[$idx]; } } optionMenuGrp -edit -value $alphaSelectedLayer ilrAlphaLayerMenuGrp; // Make the change command consistent with the current file node // optionMenuGrp -edit -changeCommand ("ilrAEChangeFileLayerAttribute(\"" + $parent + "|ilrRedLayerMenuGrp" + "\", \"" + $redLayerAttribute + "\")") ilrRedLayerMenuGrp; optionMenuGrp -edit -changeCommand ("ilrAEChangeFileLayerAttribute(\"" + $parent + "|ilrGreenLayerMenuGrp" + "\", \"" + $greenLayerAttribute + "\")") ilrGreenLayerMenuGrp; optionMenuGrp -edit -changeCommand ("ilrAEChangeFileLayerAttribute(\"" + $parent + "|ilrBlueLayerMenuGrp" + "\", \"" + $blueLayerAttribute + "\")") ilrBlueLayerMenuGrp; optionMenuGrp -edit -changeCommand ("ilrAEChangeFileLayerAttribute(\"" + $parent + "|ilrAlphaLayerMenuGrp" + "\", \"" + $alphaLayerAttribute + "\")") ilrAlphaLayerMenuGrp; // If we got here we have layers in this file, // so make sure the layer UI is enabled // optionMenuGrp -edit -enable true ilrRedLayerMenuGrp; optionMenuGrp -edit -enable true ilrGreenLayerMenuGrp; optionMenuGrp -edit -enable true ilrBlueLayerMenuGrp; optionMenuGrp -edit -enable true ilrAlphaLayerMenuGrp; } setParent $oldParent; } global proc ilrAEChangeFileLayerAttribute(string $layerMenu, string $layerAttribute) { string $selectedLayer = `optionMenuGrp -query -value $layerMenu`; setAttr -type "string" $layerAttribute $selectedLayer; } global proc ilrCreateAEFileOptions(string $parent, string $node) { string $oldParent = `setParent -q`; setParent $parent; if (`attributeQuery -exists -node $node "ilrZbrush"`) { attrControlGrp -label "ZBrush Map" -attribute ($node + ".ilrZbrush"); attrControlGrp -label "Disable Gamma Correction" -attribute ($node + ".ilrDisableGamma"); optionMenuGrp -label "Red Layer" ilrRedLayerMenuGrp; optionMenuGrp -label "Green Layer" ilrGreenLayerMenuGrp; optionMenuGrp -label "Blue Layer" ilrBlueLayerMenuGrp; optionMenuGrp -label "Alpha Layer" ilrAlphaLayerMenuGrp; } setParent $oldParent; ilrUpdateAEFileOptions($parent, $node); }