// =========================================================================== // 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: // AEfilletCurveTemplate // // Description Name; // Creates the attribute editor controls for the filletCurve node // // Input Value: // nodeName // // Output Value: // None // global proc AEfilletCurveTemplate( string $nodeName ) { string $inputCurve1 = (uiRes("m_AEfilletCurveTemplate.kInputCurveOne")); string $inputCurve2 = (uiRes("m_AEfilletCurveTemplate.kInputCurveTwo")); editorTemplate -beginScrollLayout; editorTemplate -beginLayout (uiRes("m_AEfilletCurveTemplate.kCurveFilletHistory")) -collapse false; editorTemplate -callCustom ("AEinputNew \""+$inputCurve1+"\"") ("AEinputReplace \""+$inputCurve1+"\"") "primaryCurve"; editorTemplate -callCustom ("AEinputNew \""+$inputCurve2+"\"") ("AEinputReplace \""+$inputCurve2+"\"") "secondaryCurve"; editorTemplate -callCustom "AEcircularNew" "AEcircularReplace" "circular"; editorTemplate -addControl "radius"; editorTemplate -callCustom "AEfreeformBlendNew" "AEfreeformBlendReplace" "freeformBlend"; editorTemplate -addControl "blendControl" "blendOptionControls"; editorTemplate -addControl "depth"; editorTemplate -addControl "bias"; editorTemplate -addControl "curveParameter1"; editorTemplate -addControl "curveParameter2"; editorTemplate -endLayout; // include/call base class/node attributes AEabstractBaseCreateTemplate $nodeName; editorTemplate -addExtraControls; editorTemplate -endScrollLayout; } global proc AEcircularNew( string $isCircular ) { setUITemplate -pst attributeEditorTemplate; string $buffer[]; tokenize($isCircular, ".", $buffer); string $attIsCircular = $buffer[1]; columnLayout ($attIsCircular + "Column"); radioButtonGrp -label (uiRes("m_AEfilletCurveTemplate.kConstruction")) -numberOfRadioButtons 2 -label1 (uiRes("m_AEfilletCurveTemplate.kCircular")) -da1 1 -label2 (uiRes("m_AEfilletCurveTemplate.kFreeform")) -da2 0 filletCurveTypeBtn; setParent ..; setUITemplate -ppt; // set up initial value of fillet construction type AEcircularReplace( $isCircular ); } global proc AEcircularReplace( string $isCircular ) { string $buffer[]; tokenize($isCircular, ".", $buffer); string $nodeName = $buffer[0]; // initialize radio button with fillet type (circular or freeform) int $filletType = `getAttr $isCircular`; if ( $filletType == 0 ) $filletType = 2; radioButtonGrp -e -select $filletType -onCommand1 ("editorTemplate -dimControl " + $nodeName + " \"radius\" false; radioButtonGrp -e -enable 0 filletCurveFreeFormTypeBtn;") -onCommand2 ("editorTemplate -dimControl " + $nodeName + " \"radius\" true; radioButtonGrp -e -enable 1 filletCurveFreeFormTypeBtn;") filletCurveTypeBtn; connectControl filletCurveTypeBtn $isCircular; } global proc AEfreeformBlendNew( string $isFreeformBlend ) { setUITemplate -pst attributeEditorTemplate; string $buffer[]; tokenize($isFreeformBlend, ".", $buffer); string $attIsFreeformBlend = $buffer[1]; columnLayout ($attIsFreeformBlend + "Column"); radioButtonGrp -label (uiRes("m_AEfilletCurveTemplate.kFreeformType")) -numberOfRadioButtons 2 -label1 (uiRes("m_AEfilletCurveTemplate.kTangent")) -da1 0 -label2 (uiRes("m_AEfilletCurveTemplate.kBlend")) -da2 1 filletCurveFreeFormTypeBtn; setParent ..; setUITemplate -ppt; // set up initial value of freeform type AEfreeformBlendReplace( $isFreeformBlend ); } global proc AEfreeformBlendReplace( string $isFreeformBlend ) { string $buffer[]; tokenize($isFreeformBlend, ".", $buffer); string $nodeName = $buffer[0]; // initialize radio button with freeform type (tangent or blend) int $freeformType = `getAttr $isFreeformBlend`; $freeformType++; radioButtonGrp -e -select $freeformType filletCurveFreeFormTypeBtn; int $filletType = `radioButtonGrp -q -select filletCurveTypeBtn`; if ( $filletType == 1 ) { // circular radioButtonGrp -e -enable 0 filletCurveFreeFormTypeBtn; editorTemplate -dimControl $nodeName "radius" false; } else { // freeform radioButtonGrp -e -enable 1 filletCurveFreeFormTypeBtn; editorTemplate -dimControl $nodeName "radius" true; } connectControl filletCurveFreeFormTypeBtn $isFreeformBlend; } global proc blendOptionControls( string $nodeName ) { string $blendAttrName = $nodeName + ".blendControl"; int $value = `getAttr $blendAttrName`; if ($value == 0) { // blend control off editorTemplate -dimControl $nodeName "depth" true; editorTemplate -dimControl $nodeName "bias" true; } else { // blend control on editorTemplate -dimControl $nodeName "depth" false; editorTemplate -dimControl $nodeName "bias" false; } }