Share

Update the Terrain Locator Connected to Population Tools

When the layout is updated in the scene where a Golaem simulation exists, you sometimes want to update the Terrain which is used by the Population Tool Locators. Here's a utility script which takes a Terrain Locator name and connects it to all the Population Tool Locators of your scene:

global proc updatePopToolLocatorTerrain(string $terrainName)

{     // check if the input name is a Terrain Locator

    if (`nodeType $terrainName` != "TerrainLocator")

    {

        error ($terrainName + " is not a TerrainLocator");

        return;

    }

    // update the connection

    string $popTools[] = getObjectsOfType("PopulationToolLocator");

    for ($popTool in $popTools)

    {

        string $previousTerrain = glmGetMapNode($popTool + ".inTerrain");

        if ($previousTerrain != "")

        {

            glmUnmapNode($previousTerrain, "message", ($popTool + ".inTerrain"));

            refresh;

            glmMapNode($terrainName, "message", ($popTool + ".inTerrain"));

            refresh;

        }

    }

}

This function can be called this way:

updatePopToolLocatorTerrain("terrainShape1");

Was this information helpful?