// Copyright (C) 1997-2006 Autodesk, Inc., and/or its licensors.
// All rights reserved.
//
// The coded instructions, statements, computer programs, and/or related
// material (collectively the "Data") in these files contain unpublished
// information proprietary to Autodesk, Inc. ("Autodesk") and/or its licensors,
// which is protected by U.S. and Canadian federal copyright law and by
// international treaties.
//
// The Data is provided for use exclusively by You. You have the right to use,
// modify, and incorporate this Data into other products for purposes authorized 
// by the Autodesk software license agreement, without fee.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND. AUTODESK
// DOES NOT MAKE AND HEREBY DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTIES
// INCLUDING, BUT NOT LIMITED TO, THE WARRANTIES OF NON-INFRINGEMENT,
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR ARISING FROM A COURSE 
// OF DEALING, USAGE, OR TRADE PRACTICE. IN NO EVENT WILL AUTODESK AND/OR ITS
// LICENSORS BE LIABLE FOR ANY LOST REVENUES, DATA, OR PROFITS, OR SPECIAL,
// DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES, EVEN IF AUTODESK AND/OR ITS
// LICENSORS HAS BEEN ADVISED OF THE POSSIBILITY OR PROBABILITY OF SUCH DAMAGES.

//
//
// Given a texture node, make it into a layered texture node
// Last Updated: 07/18/2000
//
global proc
turnTextureIntoLayeredTexture(string $txtNode)
{
	// Get output connection plugs for color and alpha
	string $colCon[] = `listConnections -d 1 -p 1 ($txtNode+".outColor")`;
	string $alphaCon[] = `listConnections -d 1 -p 1 ($txtNode+".outAlpha")`;

	// For each connection:
	// a) break connection
	// b) create a new layered texture node
	// c) connect texture up to new layered texture node
	// d) connect layered texture node to color dest plug
	//
	string $layeredTx;
	for ($cc in $colCon)
	{
		disconnectAttr ($txtNode+".outColor") $cc;
		$layeredTx = `shadingNode -asTexture layeredTexture`;
		connectAttr ($txtNode+".outColor") ($layeredTx+".inputs[0].color");
		connectAttr ($layeredTx+".outColor") $cc;
	}

	for ($ac in $alphaCon)
	{
		disconnectAttr ($txtNode+".outAlpha") $ac;
		$layeredTx = `shadingNode -asTexture layeredTexture`;
		connectAttr ($txtNode+".outAlpha") ($layeredTx+".inputs[0].alpha");
		connectAttr ($layeredTx+".outAlpha") $ac;
	}
}
