// =========================================================================== // 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. // =========================================================================== global proc MASHcheckWorldNodeType ( string $nodeName ) { if ( `objExists $nodeName` == 0 ) return; string $nodeAttr = $nodeName + ".clusterMode"; int $clusterMode = `getAttr $nodeAttr`; $nodeAttr = $nodeName + ".idMode"; int $idMode = `getAttr $nodeAttr`; $nodeAttr = $nodeName + ".calculateShade"; int $shadeMode = `getAttr $nodeAttr`; $nodeAttr = $nodeName + ".scaleMode"; int $scaleMode = `getAttr $nodeAttr`; if ($clusterMode == 3 || $clusterMode == 4 || $clusterMode == 5) { editorTemplate -dimControl $nodeName "clusterRadius" false; editorTemplate -dimControl $nodeName "randomPointsPerCluster" false; } else { editorTemplate -dimControl $nodeName "clusterRadius" true; editorTemplate -dimControl $nodeName "randomPointsPerCluster" true; } // Map Based if ($clusterMode == 6) { editorTemplate -dimControl $nodeName "pruningStrengthMap" false; editorTemplate -dimControl $nodeName "pruningMapDirection" false; editorTemplate -dimControl $nodeName "randomPointsPerCluster" true; } else { editorTemplate -dimControl $nodeName "pruningStrengthMap" true; editorTemplate -dimControl $nodeName "pruningMapDirection" true; editorTemplate -dimControl $nodeName "randomPointsPerCluster" false; } if ($clusterMode != 7) { if ($scaleMode == 1) { editorTemplate -dimControl $nodeName "scaleMap" true; editorTemplate -dimControl $nodeName "radiusVariance" false; editorTemplate -dimControl $nodeName "radius" false; } else if ($scaleMode == 2) { // map based if ($clusterMode == 6) { editorTemplate -dimControl $nodeName "scaleMap" false; } else { editorTemplate -dimControl $nodeName "scaleMap" true; } editorTemplate -dimControl $nodeName "radiusVariance" true; editorTemplate -dimControl $nodeName "radius" true; } else if ($scaleMode == 3) { // expand editorTemplate -dimControl $nodeName "scaleMap" true; editorTemplate -dimControl $nodeName "radiusVariance" true; editorTemplate -dimControl $nodeName "radius" true; } else if ($scaleMode == 4) { // inherit editorTemplate -dimControl $nodeName "scaleMap" true; editorTemplate -dimControl $nodeName "radiusVariance" true; editorTemplate -dimControl $nodeName "radius" true; } } else { editorTemplate -dimControl $nodeName "scaleMap" true; editorTemplate -dimControl $nodeName "radiusVariance" true; editorTemplate -dimControl $nodeName "radius" true; } // Ecosystem if ($clusterMode == 7) { // Disable cluster controls editorTemplate -dimControl $nodeName "prevousPointsMode" true; editorTemplate -dimControl $nodeName "idValue" true; editorTemplate -dimControl $nodeName "idMode" true; editorTemplate -dimControl $nodeName "maxId" true; editorTemplate -dimControl $nodeName "minId" true; editorTemplate -dimControl $nodeName "collisionIterations" true; editorTemplate -dimControl $nodeName "minimumSeparation" true; editorTemplate -dimControl $nodeName "pointsPerCluster" true; editorTemplate -dimControl $nodeName "randomPointsPerCluster" true; //Enable ecosystem controls editorTemplate -dimControl $nodeName "seedMultiplier" false; editorTemplate -dimControl $nodeName "maxPlants" false; editorTemplate -dimControl $nodeName "ecosystemAge" false; editorTemplate -dimControl $nodeName "calculateShade" false; if ($shadeMode) { editorTemplate -dimControl $nodeName "shadeVariance" false; editorTemplate -dimControl $nodeName "poleBias" false; editorTemplate -dimControl $nodeName "poleDirection" false; } else { editorTemplate -dimControl $nodeName "shadeVariance" true; editorTemplate -dimControl $nodeName "poleBias" true; editorTemplate -dimControl $nodeName "poleDirection" true; } editorTemplate -dimControl $nodeName "useIdMap" false; editorTemplate -dimControl $nodeName "idMap" false; editorTemplate -dimControl $nodeName "useRChannel" false; editorTemplate -dimControl $nodeName "useGChannel" false; editorTemplate -dimControl $nodeName "useBChannel" false; editorTemplate -dimControl $nodeName "terrainConditionsMap" false; editorTemplate -dimControl $nodeName "ageToTime" false; editorTemplate -dimControl $nodeName "timeRange" false; editorTemplate -dimControl $nodeName "roundTime" false; editorTemplate -dimControl $nodeName "sparsity" false; editorTemplate -dimControl $nodeName "randomRotate" false; editorTemplate -dimControl $nodeName "avoidanceRadius" false; editorTemplate -dimControl $nodeName "avoidanceRamp" false; editorTemplate -dimControl $nodeName "ignoreSlope" false; } else { editorTemplate -dimControl $nodeName "prevousPointsMode" false; editorTemplate -dimControl $nodeName "idValue" false; editorTemplate -dimControl $nodeName "idMode" false; editorTemplate -dimControl $nodeName "maxId" false; editorTemplate -dimControl $nodeName "minId" false; editorTemplate -dimControl $nodeName "collisionIterations" false; editorTemplate -dimControl $nodeName "minimumSeparation" false; editorTemplate -dimControl $nodeName "pointsPerCluster" false; editorTemplate -dimControl $nodeName "seedMultiplier" true; editorTemplate -dimControl $nodeName "maxPlants" true; editorTemplate -dimControl $nodeName "ecosystemAge" true; editorTemplate -dimControl $nodeName "calculateShade" true; editorTemplate -dimControl $nodeName "shadeVariance" true; editorTemplate -dimControl $nodeName "poleBias" true; editorTemplate -dimControl $nodeName "poleDirection" true; editorTemplate -dimControl $nodeName "useIdMap" true; editorTemplate -dimControl $nodeName "idMap" true; editorTemplate -dimControl $nodeName "useRChannel" true; editorTemplate -dimControl $nodeName "useGChannel" true; editorTemplate -dimControl $nodeName "useBChannel" true; editorTemplate -dimControl $nodeName "terrainConditionsMap" true; editorTemplate -dimControl $nodeName "ageToTime" true; editorTemplate -dimControl $nodeName "timeRange" true; editorTemplate -dimControl $nodeName "roundTime" true; editorTemplate -dimControl $nodeName "sparsity" true; editorTemplate -dimControl $nodeName "randomRotate" true; editorTemplate -dimControl $nodeName "avoidanceRadius" true; editorTemplate -dimControl $nodeName "avoidanceRamp" true; editorTemplate -dimControl $nodeName "ignoreSlope" true; } } global proc AEMASH_WorldTemplate( string $nodeName ) { editorTemplate -beginScrollLayout; python("import MASH.nodeHeaders; MASH.nodeHeaders.addHeader('" + $nodeName + "', 'World')") editorTemplate -endLayout; editorTemplate -bn; editorTemplate -label (getPluginResource("MASH", "kPackingMode")) -addControl "clusterMode" "MASHcheckWorldNodeType"; editorTemplate -label (getPluginResource("MASH", "kPreiousPointsMode")) -addControl "prevousPointsMode"; editorTemplate -beginLayout (getPluginResource("MASH", "kCluster")) -collapse 1; editorTemplate -label (getPluginResource("MASH", "kPointsPerCluster")) -addControl "pointsPerCluster"; editorTemplate -label (getPluginResource("MASH", "kRandomPointsPerCluster")) -addControl "randomPointsPerCluster"; editorTemplate -label (getPluginResource("MASH", "kScaleMode")) -addControl "scaleMode" "MASHcheckWorldNodeType"; editorTemplate -label (getPluginResource("MASH", "kRadius")) -addControl "radius"; editorTemplate -label (getPluginResource("MASH", "kRadiusVariance")) -addControl "radiusVariance"; editorTemplate -label (getPluginResource("MASH", "kMinimumSeparation")) -addControl "minimumSeparation"; editorTemplate -label (getPluginResource("MASH", "kCollisionIterations")) -addControl "collisionIterations"; editorTemplate -label (getPluginResource("MASH", "kClusterRadius")) -addControl "clusterRadius"; editorTemplate -label (getPluginResource("MASH", "kIdMode")) -addControl "idMode" "MASHcheckWorldNodeType"; editorTemplate -label (getPluginResource("MASH", "kMinId")) -addControl "minId"; editorTemplate -label (getPluginResource("MASH", "kMaxId")) -addControl "maxId"; editorTemplate -label (getPluginResource("MASH", "kFixedId")) -addControl "idValue"; editorTemplate -beginLayout (getPluginResource("MASH", "kMapSettings")) -collapse 1; editorTemplate -label (getPluginResource("MASH", "kScaleMap")) -addControl "scaleMap"; editorTemplate -label (getPluginResource("MASH", "kPlacementMap")) -addControl "pruningStrengthMap"; editorTemplate -label (getPluginResource("MASH", "kMapProjAxis")) -addControl "pruningMapDirection"; editorTemplate -endLayout; editorTemplate -callCustom "MASHworldGroundMeshBuildQt" "MASHworldGroundMeshUpdateQt" ""; editorTemplate -endLayout; editorTemplate -beginLayout (getPluginResource("MASH", "kTerrestialEcosystem")) -collapse 1; editorTemplate -label (getPluginResource("MASH", "kEcosystemAge")) -addControl "ecosystemAge"; editorTemplate -label (getPluginResource("MASH", "kMaxElements"))-addControl "maxPlants"; editorTemplate -label (getPluginResource("MASH", "kSeedMultiplier")) -addControl "seedMultiplier"; editorTemplate -callCustom "MASHworldGenotypeBuddon" "MASHworldGenotypeBuddonEdit" ""; editorTemplate -beginLayout (getPluginResource("MASH", "kGroundMesh")) -collapse 0; editorTemplate -callCustom "MASHworldGroundMeshBuildQt" "MASHworldGroundMeshUpdateQt" ""; editorTemplate -label (getPluginResource("MASH", "kIgnoreSlope")) -addControl "ignoreSlope"; editorTemplate -label (getPluginResource("MASH", "kCalculateShade")) -addControl "calculateShade" "MASHcheckWorldNodeType"; editorTemplate -label (getPluginResource("MASH", "kShadeVariance")) -ann (getPluginResource("MASH", "kShadeVarianceAnn")) -addControl "shadeVariance"; editorTemplate -label (getPluginResource("MASH", "kPoleBias")) -addControl "poleBias"; editorTemplate -label (getPluginResource("MASH", "kPoleDirection")) -addControl "poleDirection"; editorTemplate -endLayout; editorTemplate -beginLayout (getPluginResource("MASH", "kMaps")) -collapse 1; editorTemplate -label (getPluginResource("MASH", "kUseIdMap")) -addControl "useIdMap"; editorTemplate -label (getPluginResource("MASH", "kIdMap")) -addControl "idMap"; editorTemplate -label (getPluginResource("MASH", "kRTemperature")) -addControl "useRChannel"; editorTemplate -label (getPluginResource("MASH", "kGSoilQuality")) -addControl "useGChannel"; editorTemplate -label (getPluginResource("MASH", "kBMoisture")) -addControl "useBChannel"; editorTemplate -label (getPluginResource("MASH", "kConditionsMap")) -addControl "terrainConditionsMap"; editorTemplate -endLayout; editorTemplate -label (getPluginResource("MASH", "kOutputAgeAsTime")) -addControl "ageToTime"; editorTemplate -label (getPluginResource("MASH", "kTimeRange")) -addControl "timeRange"; editorTemplate -label (getPluginResource("MASH", "kRoundTime")) -addControl "roundTime"; editorTemplate -label (getPluginResource("MASH", "kSparsity")) -addControl "sparsity"; editorTemplate -label (getPluginResource("MASH", "kRandomRotations")) -addControl "randomRotate"; editorTemplate -beginLayout (getPluginResource("MASH", "kAvoidance")) -collapse 1; editorTemplate -label (getPluginResource("MASH", "kAvoidanceRadius")) -addControl "avoidanceRadius"; AEaddRampControl ($nodeName+".avoidanceRamp"); editorTemplate -callCustom "MASHworldAvoidanceBuildQt" "MASHworldAvoidanceUpdateQt" ""; editorTemplate -endLayout; editorTemplate -endLayout; editorTemplate -label (getPluginResource("MASH", "kRandSeed")) -addControl "randomSeed"; editorTemplate -label (getPluginResource("MASH", "kUseUpVector")) -addControl "useUpVector" "MASHcheckWorldNodeType"; editorTemplate -label (getPluginResource("MASH", "kUpVector")) -addControl "upVector"; editorTemplate -beginLayout (getPluginResource("MASH", "kStrength")) -collapse 1; editorTemplate -label (getPluginResource("MASH", "kStrength")) -addControl "Envelope"; editorTemplate -label (getPluginResource("MASH", "kRandStrength")) -addControl "randEnvelope"; editorTemplate -label (getPluginResource("MASH", "kStepStrength")) -addControl "StepEnvelope"; editorTemplate -addSeparator; editorTemplate -label (getPluginResource("MASH", "kStrengthMap")) -addControl "mColour"; editorTemplate -label (getPluginResource("MASH", "kMapProjAxis")) -addControl "mapDirection"; editorTemplate -callCustom "MASHmapHelperButton" "MASHmapHelperButtonEdit" ""; editorTemplate -endLayout; editorTemplate -beginLayout (getPluginResource("MASH", "kFalloffObject")) -collapse 1; editorTemplate -callCustom "MASHfalloffButtons" "MASHfalloffButtonsEdit" ""; editorTemplate -endLayout; editorTemplate -endLayout; AEdependNodeTemplate $nodeName; editorTemplate -addExtraControls; editorTemplate -endScrollLayout; } global proc MASHworldGroundMeshBuildQt(string $nodeName) { string $buffer[]; tokenize($nodeName, ".", $buffer); $nodeName = $buffer[0]; python("import MASHsingleInputQtWidget"); rowLayout -numberOfColumns 2 -columnWidth2 139 250 groundMesh; text -w 105 -h 20 -vis 1 -label (getPluginResource("MASH", "kInputMesh")) -align "right" -font "plainLabelFont" ; //get python to create the widget, include the desired nodeType as an arguement python("MASHsingleInputQtWidget.build_qt_widget('groundMesh', '" + $nodeName + "', 'mesh', 'groundMesh', 'worldMesh', 'WorldNodeConnectMatrix')"); setParent..; } global proc MASHworldGroundMeshUpdateQt(string $nodeName ) { string $buffer[]; tokenize($nodeName, ".", $buffer); $nodeName = $buffer[0]; python("import MASHsingleInputQtWidget"); python("MASHsingleInputQtWidget.update_qt_widget('groundMesh', '" + $nodeName + "', 'mesh', 'groundMesh', 'worldMesh', 'WorldNodeConnectMatrix')"); } global proc MASHworldGenotypeBuddon(string $nodeName) { string $buffer[]; tokenize($nodeName, ".", $buffer); $nodeName = $buffer[0]; string $cmd = "python(\"import MASH.genotypeCreator; MASH.genotypeCreator.showWindow('"+$nodeName+"')\");"; rowLayout -numberOfColumns 2 -columnAlign 1 "right" -columnWidth 2 20; text -label "Genotype Editor"; iconTextButton -style "iconOnly" -image1 "out_MASH_OpenEditor.png" -annotation (getPluginResource("MASH", "kGeno_GEditor")) -c $cmd MASHgenotypeEditorButton; setParent ..; } global proc MASHworldGenotypeBuddonEdit(string $nodeName) { string $buffer[]; tokenize($nodeName, ".", $buffer); $nodeName = $buffer[0]; string $cmd = "python(\"import MASH.genotypeCreator; MASH.genotypeCreator.showWindow('"+$nodeName+"')\");"; iconTextButton -e -c $cmd MASHgenotypeEditorButton; } global proc MASHworldAvoidanceBuildQt(string $nodeName) { string $buffer[]; tokenize($nodeName, ".", $buffer); $nodeName = $buffer[0]; python("import MASHlistQtWidget"); string $parent = `setParent -q`; //get python to create the widget, include the desired nodeType as an arguement python("MASHlistQtWidget.build_qt_widget('" + $parent + "','" + $nodeName + "', 'mesh,nurbsCurve,bezierCurve,MASH_', 'avoidanceObjects', 'worldMesh[0],worldSpace[0],worldSpace[0],outputPoints', '', 'kDDAvoidance')"); setParent..; } global proc MASHworldAvoidanceUpdateQt(string $nodeName ) { string $buffer[]; tokenize($nodeName, ".", $buffer); $nodeName = $buffer[0]; string $parent = `setParent -q`; python("import MASHlistQtWidget"); python("MASHlistQtWidget.update_qt_widget('" + $parent + "', '" + $nodeName + "', 'mesh,nurbsCurve,bezierCurve,MASH_', 'avoidanceObjects', 'worldMesh[0],worldSpace[0],worldSpace[0],outputPoints', '', 'kDDAvoidance')"); }