// =========================================================================== // 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: // AEshrinkWrapTemplate // // Description: // Creates attribute editor controls the shrinkwrap node // // Input Value: // nodeName // // Output Value: // None // global proc checkShrinkWrapProjection ( string $nodeName ) { string $nodeAttr = $nodeName + ".projection"; int $value = `getAttr $nodeAttr`; if ( $value == 1 ) { editorTemplate -dimControl $nodeName "boundingBoxCenter" false; } else { editorTemplate -dimControl $nodeName "boundingBoxCenter" true; } if ( $value == 2 ) { editorTemplate -dimControl $nodeName "axisReference" false; editorTemplate -dimControl $nodeName "alongX" false; editorTemplate -dimControl $nodeName "alongY" false; editorTemplate -dimControl $nodeName "alongZ" false; } else { editorTemplate -dimControl $nodeName "axisReference" true; editorTemplate -dimControl $nodeName "alongX" true; editorTemplate -dimControl $nodeName "alongY" true; editorTemplate -dimControl $nodeName "alongZ" true; } if ( $value == 4 ) { editorTemplate -dimControl $nodeName "closestIfNoIntersection" true; editorTemplate -dimControl $nodeName "bidirectional" true; editorTemplate -dimControl $nodeName "reverse" true; } else { editorTemplate -dimControl $nodeName "closestIfNoIntersection" false; editorTemplate -dimControl $nodeName "bidirectional" false; editorTemplate -dimControl $nodeName "reverse" false; } } global proc checkShrinkWrapFalloff ( string $nodeName ) { string $nodeAttr = $nodeName + ".falloff"; float $value = `getAttr $nodeAttr`; if ( $value != 0 ) { editorTemplate -dimControl $nodeName "falloffIterations" false; } else { editorTemplate -dimControl $nodeName "falloffIterations" true; } } global proc checkShrinkWrapSmoothLevel ( string $nodeName ) { string $nodeAttr = $nodeName + ".targetSmoothLevel"; int $value = `getAttr $nodeAttr`; if ( $value != 0 ) { editorTemplate -dimControl $nodeName "boundaryRule" false; editorTemplate -dimControl $nodeName "continuity" false; editorTemplate -dimControl $nodeName "smoothUVs" false; editorTemplate -dimControl $nodeName "propagateEdgeHardness" false; editorTemplate -dimControl $nodeName "keepMapBorders" false; editorTemplate -dimControl $nodeName "keepHardEdge" false; editorTemplate -dimControl $nodeName "keepBorder" false; } else { editorTemplate -dimControl $nodeName "boundaryRule" true; editorTemplate -dimControl $nodeName "continuity" true; editorTemplate -dimControl $nodeName "smoothUVs" true; editorTemplate -dimControl $nodeName "propagateEdgeHardness" true; editorTemplate -dimControl $nodeName "keepMapBorders" true; editorTemplate -dimControl $nodeName "keepHardEdge" true; editorTemplate -dimControl $nodeName "keepBorder" true; } } global proc checkShrinkWrapShapePreservation ( string $nodeName ) { string $nodeAttr = $nodeName + ".shapePreservationEnable"; int $value = `getAttr $nodeAttr`; if ( $value != 0 ) { editorTemplate -dimControl $nodeName "shapePreservationSteps" false; editorTemplate -dimControl $nodeName "shapePreservationIterations" false; editorTemplate -dimControl $nodeName "shapePreservationMethod" false; editorTemplate -dimControl $nodeName "shapePreservationReprojection" false; } else { editorTemplate -dimControl $nodeName "shapePreservationSteps" true; editorTemplate -dimControl $nodeName "shapePreservationIterations" true; editorTemplate -dimControl $nodeName "shapePreservationMethod" true; editorTemplate -dimControl $nodeName "shapePreservationReprojection" true; } } global proc ShrinkWrapSMPMapBordersNew( string $attr1Name, string $attr2Name, string $attr3Name ) { setUITemplate -pushTemplate attributeEditorTemplate; string $nodeName = plugNode($attr1Name); radioButtonGrp -label (uiRes("m_AEshrinkWrapTemplate.kSMPMapBordersLabel")) -vertical -numberOfRadioButtons 3 -label1 (uiRes("m_AEshrinkWrapTemplate.kSMPDoNotSmooth")) -label2 (uiRes("m_AEshrinkWrapTemplate.kSMPSmoothInternal")) -label3 (uiRes("m_AEshrinkWrapTemplate.kSMPSmoothAll")) -changeCommand ("ShrinkWrapSMPAttrsFromMapBordersUI \"" + $nodeName + "\"") SMMapBorders_RBG; checkBoxGrp -label (uiRes("m_AEshrinkWrapTemplate.kSMPPreserve")) -vertical -numberOfCheckBoxes 2 -label1 (uiRes("m_AEshrinkWrapTemplate.kSMPGeometryBorders")) -label2 (uiRes("m_AEshrinkWrapTemplate.kSMPHardEdges")) -changeCommand ("ShrinkWrapSMPAttrsFromMapBordersUI \"" + $nodeName + "\"") SMPreserver_CBG; ShrinkWrapSMPMapBordersUIFromAttrs($nodeName); setUITemplate -popTemplate; string $cmd = ("ShrinkWrapSMPMapBordersUIFromAttrs \"" + $nodeName + "\""); scriptJob -parent SMMapBorders_RBG -replacePrevious -attributeChange $attr1Name $cmd; } global proc ShrinkWrapSMPMapBordersReplace( string $attr1Name, string $attr2Name, string $attr3Name ) { string $nodeName = plugNode($attr1Name); radioButtonGrp -edit -changeCommand ("ShrinkWrapSMPAttrsFromMapBordersUI \"" + $nodeName + "\"") SMMapBorders_RBG; checkBoxGrp -edit -changeCommand ("ShrinkWrapSMPAttrsFromMapBordersUI \"" + $nodeName + "\"") SMPreserver_CBG; ShrinkWrapSMPMapBordersUIFromAttrs($nodeName); } global proc ShrinkWrapSMPMapBordersUIFromAttrs(string $nodeName) { int $smpMapBorders = `getAttr ($nodeName + ".keepMapBorders")`; if (0 == $smpMapBorders) radioButtonGrp -edit -select 3 SMMapBorders_RBG; else if (2 == $smpMapBorders) radioButtonGrp -edit -select 1 SMMapBorders_RBG; else radioButtonGrp -edit -select 2 SMMapBorders_RBG; int $keepBorder = `getAttr ($nodeName + ".keepBorder")`; checkBoxGrp -edit -value1 $keepBorder SMPreserver_CBG; int $keepHardEdge = `getAttr ($nodeName + ".keepHardEdge")`; checkBoxGrp -edit -value2 $keepHardEdge SMPreserver_CBG; } global proc ShrinkWrapSMPAttrsFromMapBordersUI(string $nodeName) { int $mapBorders = `radioButtonGrp -query -select SMMapBorders_RBG`; if (1 == $mapBorders) setAttr ($nodeName + ".keepMapBorders") 2; else if (3 == $mapBorders) setAttr ($nodeName + ".keepMapBorders") 0; else setAttr ($nodeName + ".keepMapBorders") 1; int $keepBorder = `checkBoxGrp -query -value1 SMPreserver_CBG`; setAttr ($nodeName + ".keepBorder") $keepBorder; int $keepHardEdge = `checkBoxGrp -query -value2 SMPreserver_CBG`; setAttr ($nodeName + ".keepHardEdge") $keepHardEdge; } global proc ShrinkWrapAxesNew( string $attr1Name, string $attr2Name, string $attr3Name ) { checkBoxGrp -label (uiRes("m_AEshrinkWrapTemplate.kAlongXYZ")) -numberOfCheckBoxes 3 -label1 (uiRes("m_AEshrinkWrapTemplate.kAlongX")) -label2 (uiRes("m_AEshrinkWrapTemplate.kAlongY")) -label3 (uiRes("m_AEshrinkWrapTemplate.kAlongZ")) -changeCommand1 ( "setAttr " + $attr1Name + " #1" ) -changeCommand2 ( "setAttr " + $attr2Name + " #1" ) -changeCommand3 ( "setAttr " + $attr3Name + " #1" ) ShrinkWrapAxesGrp; } global proc ShrinkWrapAxesReplace( string $attr1Name, string $attr2Name, string $attr3Name ) { checkBoxGrp -edit -changeCommand1 ( "setAttr " + $attr1Name + " #1" ) -changeCommand2 ( "setAttr " + $attr2Name + " #1" ) -changeCommand3 ( "setAttr " + $attr3Name + " #1" ) ShrinkWrapAxesGrp; } global proc AEshrinkWrapTemplate ( string $nodeName ) { editorTemplate -beginScrollLayout; editorTemplate -beginLayout (uiRes("m_AEshrinkWrapTemplate.kShrinkWrapAttributes")) -collapse false; editorTemplate -addControl "projection" "checkShrinkWrapProjection"; editorTemplate -addControl "closestIfNoIntersection"; editorTemplate -interruptOptimize; editorTemplate -addControl "reverse"; editorTemplate -addControl "bidirectional"; editorTemplate -addControl "offset"; editorTemplate -addControl "targetInflation"; editorTemplate -addControl "boundingBoxCenter"; editorTemplate -addSeparator; editorTemplate -addControl "axisReference"; editorTemplate -callCustom "ShrinkWrapAxesNew" "ShrinkWrapAxesReplace" "alongX" "alongY" "alongZ"; editorTemplate -addSeparator; editorTemplate -addControl "targetSmoothLevel" "checkShrinkWrapSmoothLevel"; editorTemplate -beginLayout (uiRes("m_AEshrinkWrapTemplate.kFalloffControls")) -collapse true; editorTemplate -addControl "falloff" "checkShrinkWrapFalloff"; editorTemplate -addControl "falloffIterations"; editorTemplate -endLayout; editorTemplate -beginLayout (uiRes("m_AEshrinkWrapTemplate.kShapePreservationControls")) -collapse true; editorTemplate -label (uiRes("m_AEshrinkWrapTemplate.kEnableShapePreservation")) -addControl "shapePreservationEnable" "checkShrinkWrapShapePreservation"; editorTemplate -label (uiRes("m_AEshrinkWrapTemplate.kIterations")) -addControl "shapePreservationSteps"; editorTemplate -label (uiRes("m_AEshrinkWrapTemplate.kIterationsPerStep")) -addControl "shapePreservationIterations"; editorTemplate -label (uiRes("m_AEshrinkWrapTemplate.kMethod")) -addControl "shapePreservationMethod"; editorTemplate -label (uiRes("m_AEshrinkWrapTemplate.kReprojection")) -addControl "shapePreservationReprojection"; editorTemplate -endLayout; editorTemplate -beginLayout (uiRes("m_AEshrinkWrapTemplate.kSmoothTargetControls")) -collapse true; editorTemplate -beginNoOptimize; editorTemplate -label (uiRes("m_AEshrinkWrapTemplate.kBoundaryRule")) -addControl "boundaryRule"; editorTemplate -addControl "continuity"; editorTemplate -addControl "smoothUVs"; editorTemplate -addControl "propagateEdgeHardness"; editorTemplate -endNoOptimize; editorTemplate -callCustom "ShrinkWrapSMPMapBordersNew" "ShrinkWrapSMPMapBordersReplace" "keepMapBorders" "keepHardEdge" "keepBorder"; editorTemplate -endLayout; editorTemplate -endLayout; editorTemplate -suppress "targetGeom"; editorTemplate -suppress "cachedSmoothTarget"; editorTemplate -suppress "innerGeom"; AEgeometryFilterCommon $nodeName; AEgeometryFilterInclude $nodeName; editorTemplate -addExtraControls; editorTemplate -endScrollLayout; }