// =========================================================================== // 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: // AEffdCommon // // Description Name; // Creates the attribute editor controls for the ffd node // // Input Value: // nodeName // // Output Value: // None // global proc checkFfdPartialResolution ( string $nodeName ) { string $nodeAttr = $nodeName + ".usePartialResolution"; int $value = `getAttr $nodeAttr`; if ($value == 0) { editorTemplate -dimControl $nodeName "partialResolution" true; } else { editorTemplate -dimControl $nodeName "partialResolution" false; } } global proc checkFfdLocal ( string $nodeName ) { string $nodeAttr = $nodeName + ".local"; int $value = `getAttr $nodeAttr`; if ($value == 0) { editorTemplate -dimControl $nodeName "localInfluenceS" true; editorTemplate -dimControl $nodeName "localInfluenceT" true; editorTemplate -dimControl $nodeName "localInfluenceU" true; } else { editorTemplate -dimControl $nodeName "localInfluenceS" false; editorTemplate -dimControl $nodeName "localInfluenceT" false; editorTemplate -dimControl $nodeName "localInfluenceU" false; } } // This method implements a falloff distance. // global proc checkOutsideLattice ( string $nodeName ) { string $nodeAttr = $nodeName + ".outsideLattice"; int $value = `getAttr $nodeAttr`; if ( $value == 0 || $value == 1 ) { editorTemplate -dimControl $nodeName "outsideFalloffDist" true; } else { editorTemplate -dimControl $nodeName "outsideFalloffDist" false; } } global proc AEuseFfdPartialResolutionNew( string $attrName ) { setUITemplate -pst attributeEditorTemplate; attrEnumOptionMenuGrp -attribute $attrName -label (uiRes("m_AEffdCommon.kResolution")) usePartialResolutionEnum; setUITemplate -ppt; AEuseFfdPartialResolutionReplace $attrName; } global proc AEuseFfdPartialResolutionReplace( string $attrName ) { string $tmp[]; tokenize($attrName, ".", $tmp); string $nodeName = $tmp[0]; attrEnumOptionMenuGrp -e -attribute $attrName -label (uiRes("m_AEffdCommon.kResolution")) usePartialResolutionEnum; scriptJob -p usePartialResolutionEnum -rp -ac $attrName ("checkFfdPartialResolution " + $nodeName ); // Check the partial resoultion initial state // evalDeferred ("checkFfdPartialResolution " + $nodeName); } global proc AEffdCommon ( string $nodeName ) { editorTemplate -addControl "local" "checkFfdLocal"; editorTemplate -addControl "localInfluenceS"; editorTemplate -addControl "localInfluenceT"; editorTemplate -addControl "localInfluenceU"; editorTemplate -addControl "outsideLattice" "checkOutsideLattice"; editorTemplate -addControl "outsideFalloffDist"; editorTemplate -addSeparator; editorTemplate -callCustom "AEuseFfdPartialResolutionNew" "AEuseFfdPartialResolutionReplace" "usePartialResolution"; editorTemplate -addControl "partialResolution"; editorTemplate -addControl "freezeGeometry"; // include/call base class/node attributes AEgeometryFilterCommon $nodeName; // suppressed attributes editorTemplate -suppress "caching"; }