// 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:  7 Oct 1998
//
//  Procedure Name:
//      rebuildCurveSetup
//
//  Description:
//		Update the state of the option box UI to reflect the option values.
//
//  Input Arguments:
//      parent               - Top level parent layout of the option box UI.
//                             Required so that UI object names can be 
//                             successfully resolved.
//
//		forceFactorySettings - Whether the option values should be set to
//                             default values.
//
//  Return Value:
//      None.
//

global proc rebuildCurveSetup(string $parent, int $forceFactorySettings)
{
	setParent $parent;

	// Query the optionVar's and set the values into the controls
	//
	int $rebuildType = `optionVar -query rebuildCurveType` + 1;
	int $numSpans = `optionVar -query rebuildCurveTypeUniformNumSpans`;
	int $degree = `optionVar -query rebuildCurveTypeUniformDegree`;
	int $keepRange = `optionVar -query rebuildCurveKeepRange`;
	int $endKnots = `optionVar -q rebuildCurveEndKnots`;
	int $keepControlPoints = `optionVar -query rebuildCurveKeepControlPoints`;
	int $keepEndPts = `optionVar -query rebuildCurveKeepEndPoints`;
	int $keepTan = `optionVar -query rebuildCurveKeepEndTangents`;
	int $keepNumSpans = `optionVar -query rebuildCurveKeepNumSpans`;
	int $useGlobalTol = `optionVar -query rebuildCurveUseGlobalTolerance`;
	radioButtonGrp -e -select (2 - $useGlobalTol) toleranceRadioButtonGrp;

	float $localTol = `optionVar -query rebuildCurveLocalTolerance`;
	int $keepOriginal = `optionVar -query rebuildCurveKeepOriginal`;

	// Set the controls
	//
	if( $rebuildType == 1 || $rebuildType == 2 || $rebuildType == 3 )
		radioButtonGrp -edit -select $rebuildType rebuildTypeRadioGroup1;
	else if( $rebuildType == 4 || $rebuildType == 5 ) {
		int $temp = $rebuildType - 3;
		radioButtonGrp -edit -select $temp rebuildTypeRadioGroup2;
	} else {
		int $temp = $rebuildType - 5;
		radioButtonGrp -e -select $temp rebuildTypeRadioGroup3;
	}
	intSliderGrp -edit -value $numSpans numSpansIntSliderGrp;

	switch($degree) {
		case 1: radioButtonGrp -e -select 1 rebuildCrvDegree123; break;
		case 2: radioButtonGrp -e -select 2 rebuildCrvDegree123; break;
		case 3: radioButtonGrp -e -select 3 rebuildCrvDegree123; break;
		case 5: radioButtonGrp -e -select 1 rebuildCrvDegree57; break;
		case 7: radioButtonGrp -e -select 2 rebuildCrvDegree57; break;
		default: radioButtonGrp -e -select 3 rebuildCrvDegree123; break;
	}

	radioButtonGrp -e -select ($endKnots+1) endKnotsRadioButtonGrp;
	radioButtonGrp -edit -select ($keepRange+1) keepRangeRadioButtonGrp;
	checkBoxGrp -edit -value1 $keepEndPts keepCheckBoxGrp;
	checkBoxGrp -edit -value2 $keepTan keepCheckBoxGrp;
	checkBoxGrp -edit -value3 $keepControlPoints keepCheckBoxGrp;
	checkBoxGrp -edit -value4 $keepNumSpans keepCheckBoxGrp;
	radioButtonGrp -edit -select $useGlobalTol toleranceRadioButtonGrp;
	floatSliderGrp -edit -value $localTol localTolFloatFieldGrp;

	if( `checkBoxGrp -q -exists keepOriginalCheckBox` ) {
		checkBoxGrp -edit -value1 $keepOriginal keepOriginalCheckBox;
	}

	rebuildCurveVisibility $parent -1 $rebuildType $keepControlPoints 
		$keepNumSpans;
}
