// =========================================================================== // 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. // =========================================================================== // // // Creation Date: 2003 // // Procedure Name: // AEfollicleTemplate // // Description: // Creates the attribute editor controls for the follicle Node // // Input Value: // nodeName // // Output Value: // None // global proc AEfollicleUpdateSimulationMethod( string $nodeName ) { int $method = getAttr($nodeName + ".simulationMethod" ); int $dynamic = ($method == 2); editorTemplate -dimControl $nodeName "pointLock" (!$dynamic); editorTemplate -dimControl $nodeName "restPose" (!$dynamic); editorTemplate -dimControl $nodeName "overrideDynamics" (!$dynamic); editorTemplate -dimControl $nodeName "collide" (!$dynamic); int $override = getAttr($nodeName + ".overrideDynamics" ); $override = $override && $dynamic; editorTemplate -dimControl $nodeName "stiffness" (!$override); editorTemplate -dimControl $nodeName "stiffnessScale" (!$override); editorTemplate -dimControl $nodeName "lengthFlex" (!$override); editorTemplate -dimControl $nodeName "damp" (!$override); AEfollicleUpdateStartAttract( $nodeName ); AEfollicleUpdateClumpWidth( $nodeName ); } global proc AEfollicleUpdateOverrideDynamics( string $nodeName ) { int $method = getAttr($nodeName + ".simulationMethod" ); int $dynamic = ($method == 2); int $override = getAttr($nodeName + ".overrideDynamics" ); $override = $override && $dynamic; editorTemplate -dimControl $nodeName "stiffness" (!$override); editorTemplate -dimControl $nodeName "stiffnessScale" (!$override); editorTemplate -dimControl $nodeName "lengthFlex" (!$override); editorTemplate -dimControl $nodeName "damp" (!$override); AEfollicleUpdateStartAttract( $nodeName ); AEfollicleUpdateClumpWidth( $nodeName ); } global proc AEfolliceUpdateSampling( string $nodeName ) { int $method = getAttr ($nodeName + ".fixedSegmentLength"); editorTemplate -dimControl $nodeName "sampleDensity" ($method); editorTemplate -dimControl $nodeName "segmentLength" (!$method); } global proc AEfollicleUpdateStartAttract( string $nodeName ) { int $method = getAttr($nodeName + ".simulationMethod" ); int $dynamic = ($method == 2); int $override = getAttr($nodeName + ".overrideDynamics" ); $override = $override && $dynamic; editorTemplate -dimControl $nodeName "startCurveAttract" (!$override); float $startAttract = getAttr($nodeName + ".startCurveAttract" ); int $enable = $override && ( $startAttract > 0 ); editorTemplate -dimControl $nodeName "attractionScale" ( !$enable ); editorTemplate -dimControl $nodeName "attractionDamp" ( !$enable ); } global proc AEfollicleUpdateClumpWidth( string $nodeName ) { int $method = getAttr($nodeName + ".simulationMethod" ); int $dynamic = ($method == 2); int $override = getAttr($nodeName + ".overrideDynamics" ); $override = $override && $dynamic; editorTemplate -dimControl $nodeName "clumpWidth" (!$override); float $clumpWidth = getAttr($nodeName + ".clumpWidth" ); int $enable = $override && ( $clumpWidth > 0 ); editorTemplate -dimControl $nodeName "clumpWidthScale" ( !$enable ); } global proc AEfollicleTemplate( string $nodeName ) { editorTemplate -beginScrollLayout; editorTemplate -beginLayout (uiRes("m_AEfollicleTemplate.kFollicleAttributes")) -collapse 0; editorTemplate -addControl "parameterU"; editorTemplate -addControl "parameterV"; editorTemplate -addControl "restPose"; editorTemplate -addControl "simulationMethod" "AEfollicleUpdateSimulationMethod"; editorTemplate -addControl "startDirection"; editorTemplate -addControl "flipDirection"; editorTemplate -addControl "pointLock"; editorTemplate -addControl "degree"; editorTemplate -addControl "fixedSegmentLength" "AEfolliceUpdateSampling"; editorTemplate -addControl "segmentLength"; editorTemplate -addControl "sampleDensity"; editorTemplate -addControl "braid"; editorTemplate -beginLayout (uiRes("m_AEfollicleTemplate.kPerFollicleOverrides")) -collapse 0; editorTemplate -beginLayout (uiRes("m_AEfollicleTemplate.kDynamicsOverrides")) -collapse 0; editorTemplate -addControl "overrideDynamics" "AEfollicleUpdateOverrideDynamics"; editorTemplate -addControl "collide"; editorTemplate -addControl "lengthFlex"; editorTemplate -addControl "damp"; editorTemplate -addControl "stiffness"; AEaddRampControl ($nodeName+".stiffnessScale"); editorTemplate -addControl "clumpWidth" "AEfollicleUpdateClumpWidth"; AEaddRampControl ($nodeName+".clumpWidthScale"); editorTemplate -addControl "startCurveAttract" "AEfollicleUpdateStartAttract"; editorTemplate -addControl "attractionDamp"; AEaddRampControl ($nodeName+".attractionScale"); editorTemplate -endLayout; editorTemplate -beginLayout (uiRes("m_AEfollicleTemplate.kRenderOverrides")) -collapse 0; editorTemplate -addControl "clumpWidthMult"; editorTemplate -addControl "densityMult"; editorTemplate -addControl "curlMult"; editorTemplate -addControl "clumpTwistOffset"; editorTemplate -addControl "colorBlend"; editorTemplate -addControl "color"; editorTemplate -endLayout; editorTemplate -endLayout; editorTemplate -suppress "inputSurface"; editorTemplate -suppress "inputWorldMatrix"; editorTemplate -suppress "inputMesh"; editorTemplate -suppress "startPosition"; editorTemplate -suppress "restPosition"; editorTemplate -suppress "currentPosition"; editorTemplate -suppress "faceId"; editorTemplate -suppress "triangleId"; editorTemplate -endLayout; AEshapeTemplate $nodeName; editorTemplate -addExtraControls; editorTemplate -endScrollLayout; }