// 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.

//
//  Alias Script File
//  MODIFY THIS AT YOUR OWN RISK
//
//  Creation Date:  2003
//
// Description: return indices of the inputHair array for all follicles that
// are selected directly or indirectly.
//	

global proc int[] selectedHairSystemIndices(string $hsysArray[])
{
	int $out[];
	string $hsys = "";
	string $hcurves[] = getSelectedHairCurves();
	int $numHairs = size( $hcurves );

	int $ind[];
	int $numInd = 0;
	int $missingConnections = false;
	int $multipleHairSystems = false;
	for( $i = 0; $i < $numHairs; $i++ ){
		string $hair = $hcurves[$i];
		int $mode = getAttr ($hair + ".simulationMethod" );
		if( $mode != 2 ){
			continue; // don't connect pins to passive hairs
		} 
		string $con[] = `connectionInfo -dfs ($hair + ".outHair")`;
		if( size( $con ) > 0 ){
			string $buffer[];
			int $numTokens = `tokenize $con[0] ".[]" $buffer`;
			if( $numTokens == 3 ){
				$hairSys = $buffer[0];
				if( $hsys == "" ){
					$hsys = $hairSys;
				}  else if( $hairSys != $hsys ){
					$multipleHairSystems = true;
					break;
				}
				$ind[$numInd] = (int)$buffer[2];	
				$numInd++;
			}

		} else {
			$missingConnections = true;
			break;
		}
				
	}
	if( $multipleHairSystems ){
		warning((uiRes("m_selectedHairSystemIndices.kMultipleHairSystems"))); 
	} else if( $missingConnections ){
		warning((uiRes("m_selectedHairSystemIndices.kMissingConnections"))); 
	} else {
		$out = $ind;
		$hsysArray[0] = $hsys;
	}
	return $out;	
}
