// Copyright (C) 1997-2004 Alias Systems Corp.
// 
// The information in this file is provided for the exclusive use of the
// licensees of Alias.  Such users have the right to use, modify,
// and incorporate this code into other products for purposes authorized
// by the Alias license agreement, without fee.
// 
// ALIAS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
// EVENT SHALL ALIAS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
// DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
// TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
// PERFORMANCE OF THIS SOFTWARE.

// Description:  This procedure is called to return the
//      a list of all the bins.
//
proc string[] listOfBins()
{
    // Build the hyper shade bin list using all the bins which contains
    // shading nodes.
    //
    string $nodes[];

    if (`optionVar -query hsBinsSortShadingNodesOnly`)
    {
        getAllShadingNodes($nodes);
    }
    else
    {
        $nodes = `ls`;
    }

    string $binList[] = `binMembership -q -listBins $nodes`;
    return $binList;
}

// Description:  This procedure is called to add new bins to
//      the current bin list.  
//      This procedure is disabled in batch mode.
//
global proc updateHyperShadeBinList()
{
    if (!`about -batch`)
    {
        string $potentialNewBinList[] = listOfBins();

        addBinsToHyperShadeBinList($potentialNewBinList); 
    }
}
