// =========================================================================== // 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: May 13, 1997 // // Procedure Name: // AEenvFogTemplate // // Description: // Creates the attribute editor controls for the envFog Node // // Input Value: // nodeName // // Output Value: // None // // // Procedure Name: // checkUseLayer // // source AEenvFogLegacyAttrsHandler.mel; global proc checkUseLayer ( string $nodeName ) { string $nodeAttr = $nodeName + ".useLayer"; int $value = `getAttr $nodeAttr`; int $physical = `getAttr ($nodeName + ".physicalFog")`; if ( $value == 1 && $physical == 0 ) { editorTemplate -dimControl $nodeName "layer" false; } else { editorTemplate -dimControl $nodeName "layer" true; } } // // Procedure Name: // checkWhichClipPlanes // // global proc checkWhichClipPlanes ( string $nodeName ) { string $nodeAttr = $nodeName + ".distanceClipPlanes"; int $value = `getAttr $nodeAttr`; if ( $value == 1 ) { editorTemplate -dimControl $nodeName "fogNearDistance" false; editorTemplate -dimControl $nodeName "fogFarDistance" false; } else { editorTemplate -dimControl $nodeName "fogNearDistance" true; editorTemplate -dimControl $nodeName "fogFarDistance" true; } } // // Procedure Name: // checkUseHeight // // global proc checkUseHeight ( string $nodeName ) { string $nodeAttr = $nodeName + ".useHeight"; int $value = `getAttr $nodeAttr`; int $physical = `getAttr ($nodeName + ".physicalFog")`; if ( $value == 1 && $physical == 0) { editorTemplate -dimControl $nodeName "minHeight" false; editorTemplate -dimControl $nodeName "maxHeight" false; editorTemplate -dimControl $nodeName "blendRange" false; } else { editorTemplate -dimControl $nodeName "minHeight" true; editorTemplate -dimControl $nodeName "maxHeight" true; editorTemplate -dimControl $nodeName "blendRange" true; } } global proc checkFogType( string $nodeName ) { int $fogType = `getAttr ($nodeName + ".fogType")`; int $pFog = `getAttr ($nodeName + ".physicalFog")`; int $dimFog = ($fogType == 3) || !$pFog; int $dimWater = ($fogType < 3) || !$pFog; int $dimHeight = $fogType == 0 || $fogType == 4 || $dimFog; int $dimDecay = ($fogType != 2 && $fogType != 6) || $dimFog; editorTemplate -dimControl $nodeName "planetRadius" $dimHeight; editorTemplate -dimControl $nodeName "airMinHeight" $dimHeight; editorTemplate -dimControl $nodeName "airMaxHeight" $dimHeight; editorTemplate -dimControl $nodeName "fogMinHeight" $dimHeight; editorTemplate -dimControl $nodeName "fogMaxHeight" $dimHeight; editorTemplate -dimControl $nodeName "fogColor" $dimFog; editorTemplate -dimControl $nodeName "fogOpacity" $dimFog; editorTemplate -dimControl $nodeName "fogDensity" $dimFog; editorTemplate -dimControl $nodeName "fogMinHeight" $dimHeight; editorTemplate -dimControl $nodeName "fogMaxHeight" $dimHeight; editorTemplate -dimControl $nodeName "fogDecay" $dimDecay; editorTemplate -dimControl $nodeName "fogLightScatter" $dimFog; editorTemplate -dimControl $nodeName "airColor" $dimFog; editorTemplate -dimControl $nodeName "airOpacity" $dimFog; editorTemplate -dimControl $nodeName "airDensity" $dimFog; editorTemplate -dimControl $nodeName "airMinHeight" $dimHeight; editorTemplate -dimControl $nodeName "airMaxHeight" $dimHeight; editorTemplate -dimControl $nodeName "airDecay" $dimDecay; editorTemplate -dimControl $nodeName "airLightScatter" $dimFog; editorTemplate -dimControl $nodeName "waterColor" $dimWater; editorTemplate -dimControl $nodeName "waterOpacity" $dimWater; editorTemplate -dimControl $nodeName "waterDensity" $dimWater; editorTemplate -dimControl $nodeName "waterLevel" $dimWater; editorTemplate -dimControl $nodeName "waterDepth" $dimWater; editorTemplate -dimControl $nodeName "waterLightDecay" $dimWater; editorTemplate -dimControl $nodeName "waterLightScatter" $dimWater; } global proc checkPhysicalFog( string $nodeName ) { int $val = `getAttr ($nodeName + ".physicalFog")`; int $nval = !$val; int $useHeight = `getAttr ($nodeName + ".useHeight")`; int $useLayer = `getAttr ($nodeName + ".useLayer")`; int $fogType = `getAttr ($nodeName + ".fogType")`; int $dimFog = ($fogType == 3) || $nval; int $dimWater = ($fogType < 3) || $nval; int $dimHeight = $fogType == 0 || $fogType == 4 || $dimFog; int $dimDecay = ($fogType != 2 && $fogType != 6) || $dimFog; editorTemplate -dimControl $nodeName "minHeight" ($val || !$useHeight); editorTemplate -dimControl $nodeName "maxHeight" ($val || !$useHeight); editorTemplate -dimControl $nodeName "blendRange" ($val || !$useHeight); editorTemplate -dimControl $nodeName "layer" ($val || !$useLayer); editorTemplate -dimControl $nodeName "color" $val; editorTemplate -dimControl $nodeName "colorBasedTransparency" $val; editorTemplate -dimControl $nodeName "saturationDistance" $val; editorTemplate -dimControl $nodeName "useLayer" $val; editorTemplate -dimControl $nodeName "useHeight" $val; editorTemplate -dimControl $nodeName "fogType" $nval; editorTemplate -dimControl $nodeName "fogAxis" $nval; editorTemplate -dimControl $nodeName "planetRadius" $dimHeight; editorTemplate -dimControl $nodeName "fogColor" $dimFog; editorTemplate -dimControl $nodeName "fogOpacity" $dimFog; editorTemplate -dimControl $nodeName "fogDensity" $dimFog; editorTemplate -dimControl $nodeName "fogMinHeight" $dimHeight; editorTemplate -dimControl $nodeName "fogMaxHeight" $dimHeight; editorTemplate -dimControl $nodeName "fogDecay" $dimDecay; editorTemplate -dimControl $nodeName "fogLightScatter" $dimFog; editorTemplate -dimControl $nodeName "airColor" $dimFog; editorTemplate -dimControl $nodeName "airOpacity" $dimFog; editorTemplate -dimControl $nodeName "airDensity" $dimFog; editorTemplate -dimControl $nodeName "airMinHeight" $dimHeight; editorTemplate -dimControl $nodeName "airMaxHeight" $dimHeight; editorTemplate -dimControl $nodeName "airDecay" $dimDecay; editorTemplate -dimControl $nodeName "airLightScatter" $dimFog; editorTemplate -dimControl $nodeName "waterColor" $dimWater; editorTemplate -dimControl $nodeName "waterOpacity" $dimWater; editorTemplate -dimControl $nodeName "waterDensity" $dimWater; editorTemplate -dimControl $nodeName "waterLevel" $dimWater; editorTemplate -dimControl $nodeName "waterDepth" $dimWater; editorTemplate -dimControl $nodeName "waterLightDecay" $dimWater; editorTemplate -dimControl $nodeName "waterLightScatter" $dimWater; editorTemplate -dimControl $nodeName "sunIntensity" $nval; editorTemplate -dimControl $nodeName "sunColor" $nval; editorTemplate -dimControl $nodeName "sunAzimuth" $nval; editorTemplate -dimControl $nodeName "sunElevation" $nval; } // // Procedure Name: // AEenvFogTemplate // // global proc AEenvFogTemplate ( string $nodeName ) { AEswatchDisplay $nodeName; editorTemplate -beginScrollLayout; editorTemplate -addControl "physicalFog" "checkPhysicalFog"; editorTemplate -beginLayout (uiRes("m_AEenvFogTemplate.kSimpleFog")) -collapse 0; // include/call base class/node attributes editorTemplate -addControl "color"; editorTemplate -addControl "colorBasedTransparency"; editorTemplate -addControl "saturationDistance"; editorTemplate -addSeparator; editorTemplate -addControl "useLayer" "checkUseLayer"; editorTemplate -addControl "layer"; editorTemplate -addSeparator; editorTemplate -addControl "useHeight" "checkUseHeight"; editorTemplate -addControl "minHeight"; editorTemplate -addControl "maxHeight"; editorTemplate -addControl "blendRange"; // remove legacy dynamic attributes AEremoveLegacyPhotonFogAttrs(); editorTemplate -endLayout; editorTemplate -beginLayout (uiRes("m_AEenvFogTemplate.kPhysicalFog")) -collapse 1; editorTemplate -addControl "fogType" "checkFogType"; editorTemplate -addSeparator; editorTemplate -addControl "fogAxis"; editorTemplate -addControl "planetRadius"; editorTemplate -addSeparator; editorTemplate -beginLayout (uiRes("m_AEenvFogTemplate.kFog")) -collapse 0; editorTemplate -addControl "fogColor"; editorTemplate -addControl "fogOpacity"; editorTemplate -addControl "fogDensity"; editorTemplate -addControl "fogMinHeight"; editorTemplate -addControl "fogMaxHeight"; editorTemplate -addControl "fogDecay"; editorTemplate -addControl "fogLightScatter"; editorTemplate -endLayout; editorTemplate -beginLayout (uiRes("m_AEenvFogTemplate.kAir")) -collapse 0; editorTemplate -addControl "airColor"; editorTemplate -addControl "airOpacity"; editorTemplate -addControl "airDensity"; editorTemplate -addControl "airMinHeight"; editorTemplate -addControl "airMaxHeight"; editorTemplate -addControl "airDecay"; editorTemplate -addControl "airLightScatter"; editorTemplate -endLayout; editorTemplate -beginLayout (uiRes("m_AEenvFogTemplate.kWater")) -collapse 0; editorTemplate -addControl "waterColor"; editorTemplate -addControl "waterOpacity"; editorTemplate -addControl "waterDensity"; editorTemplate -addControl "waterLevel"; editorTemplate -addControl "waterDepth"; editorTemplate -addControl "waterLightDecay"; editorTemplate -addControl "waterLightScatter"; editorTemplate -endLayout; editorTemplate -beginLayout (uiRes("m_AEenvFogTemplate.kSun")) -collapse 1; editorTemplate -addControl "sunIntensity"; editorTemplate -addControl "sunColor"; editorTemplate -addControl "sunAzimuth"; editorTemplate -addControl "sunElevation"; editorTemplate -endLayout; editorTemplate -endLayout; editorTemplate -beginLayout (uiRes("m_AEenvFogTemplate.kClippingPlanes")) -collapse 1; editorTemplate -addControl "distanceClipPlanes" "checkWhichClipPlanes"; editorTemplate -addControl "fogNearDistance"; editorTemplate -addControl "fogFarDistance"; editorTemplate -endLayout; editorTemplate -suppress "useDistance"; editorTemplate -suppress "startDistance"; editorTemplate -suppress "endDistance"; // FYI Obsolete attributes from the common fog class editorTemplate -suppress "fastDropOff"; editorTemplate -suppress "density"; AEblackHoleControl $nodeName; // include/call base class/node attributes AElightFogInclude $nodeName; editorTemplate -addExtraControls; editorTemplate -endScrollLayout; }