// =========================================================================== // 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. // =========================================================================== /////////////////////////////////////////////////////////////////////////////// // // Description: // Attribute editor template layout for polyBridgeEdge nodes // /////////////////////////////////////////////////////////////////////////////// proc int needCurveControls ( string $nodeName ) { if (!`objExists $nodeName`) return 0; string $connectedCurveAttr = $nodeName + ".inputProfile"; string $curveTypeAttr = $nodeName + ".curveType"; int $curveType = `getAttr $curveTypeAttr`; // The curve controls should be valid if something is // connected to the inputProfile, ie. either a user // curve was used for the bridge or one was created // by us, or it is set to use an implicit curve. // return ( size(`listConnections $connectedCurveAttr`) || $curveType == 1 ); } global proc AEpolyBridgeEdgeCurveTypeChanged ( string $nodeName ) { int $needCurveControls = needCurveControls($nodeName); AEpolyBridgeEdgeRampEnable $nodeName $needCurveControls; } global proc AEpolyBridgeEdgeRampEnable(string $nodeName, int $val) { editorTemplate -dimControl $nodeName "taper" (1-$val); editorTemplate -dimControl $nodeName "twist" (1-$val); if (`control -ex "taperCurveSp"`) attrFieldSliderGrp -e -enable $val "taperCurveSp"; if (`control -ex "taperCurveScc"`) attrFieldSliderGrp -e -enable $val "taperCurveScc"; if (`control -ex "taperCurveSi"`) attrEnumOptionMenuGrp -e -enable $val "taperCurveSi"; if (`control -ex "taperCurveRamp"`) gradientControl -e -enable $val "taperCurveRamp"; } global proc AEpolyBridgeEdgeNew( string $attrName ) { } global proc AEpolyBridgeEdgeReplace( string $attrName ) { string $tmp[]; tokenize($attrName, ".", $tmp); string $nodeName = $tmp[0]; int $enable = needCurveControls($nodeName); AEpolyBridgeEdgeRampEnable $nodeName $enable; } global proc AEpolyBridgeEdgeTemplate(string $nodeName) { editorTemplate -beginScrollLayout; editorTemplate -beginLayout (uiRes("m_AEpolyBridgeEdgeTemplate.kPolygonBridgeEdgeAttributes")) -collapse 0; editorTemplate -addControl "divisions"; editorTemplate -label (uiRes("m_AEpolyBridgeEdgeTemplate.kBridgeSourceDirection")) -addControl "sourceDirection"; editorTemplate -label (uiRes("m_AEpolyBridgeEdgeTemplate.kBridgeTargetDirection")) -addControl "targetDirection"; editorTemplate -addControl "curveType" "AEpolyBridgeEdgeCurveTypeChanged"; editorTemplate -addControl "bridgeOffset"; editorTemplate -addControl "smoothingAngle"; int $collapse = !needCurveControls($nodeName); editorTemplate -beginLayout (uiRes("m_AEpolyBridgeEdgeTemplate.kPolyBridgeEdgeAttributes")) -collapse $collapse; editorTemplate -addControl "twist"; editorTemplate -addControl "taper"; AEaddRampControl ($nodeName+".taperCurve"); editorTemplate -endLayout; editorTemplate -callCustom "AEpolyBridgeEdgeNew" AEpolyBridgeEdgeReplace AEpolyBridgeEdgeType; editorTemplate -endLayout; AEpolyModifierInclude $nodeName; // suppressed attributes editorTemplate -suppress "inputComponents"; editorTemplate -suppress "startEdge1"; editorTemplate -suppress "startEdge2"; editorTemplate -suppress "inputProfile"; editorTemplate -suppress "worldSpace"; editorTemplate -suppress "startPoint"; editorTemplate -suppress "startDir"; editorTemplate -suppress "endPoint"; editorTemplate -suppress "endDir"; editorTemplate -addExtraControls; editorTemplate -endScrollLayout; }