// Copyright (C) 1997-2010 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.

//
//  Procedure Name:
//	AEpointConstraintTemplate
//
//  Description Name;
//	Creates the attribute editor controls for the pointConstraint Node
//
//  Input Value:
//	nodeName 
//
//  Output Value:
//	None
// 


global proc AEconstraintOffsetPolarityNew( string $attrName )
{
	setUITemplate -pst attributeEditorTemplate;	
 	attrFieldSliderGrp -attribute $attrName -label (uiRes("m_AEpointConstraintTemplate.kOffsetPolarity")) 
            constraintOffsetPolaritySlider;
    setUITemplate -ppt;
}

global proc AEconstraintOffsetPolarityReplace( string $attrName )
{
	string $label = uiRes( "m_AEpointConstraintTemplate.kOffsetPolarity" );
 	attrFieldSliderGrp -e -attribute $attrName -label $label
            constraintOffsetPolaritySlider;
}

global proc AEenableRestPointCallback( string $nodeName )
{
	int $enable = `getAttr ($nodeName+".enableRestPosition")`;
	editorTemplate -dimControl $nodeName "restTranslate" (! $enable);
}


global proc AEpointConstraintTemplate ( string $nodeName )
{
	editorTemplate -beginScrollLayout;

		// include/call base class/node attributes
		AEtransformMain $nodeName;
		
		editorTemplate -beginLayout (uiRes("m_AEpointConstraintTemplate.kPointConstraintAttributes"))  -collapse 0;
		    editorTemplate -addControl "lockOutput";
			editorTemplate -addControl "offset";
		editorTemplate -callCustom "AEconstraintOffsetPolarityNew" 
			"AEconstraintOffsetPolarityReplace" "constraintOffsetPolarity";

			editorTemplate -addSeparator;

			editorTemplate -addControl "constraintTranslate";
			editorTemplate -addControl "enableRestPosition" "AEenableRestPointCallback";
			editorTemplate -addControl "restTranslate";			
	
			// suppressed attributes
			editorTemplate -suppress "constraintRotatePivot";
			editorTemplate -suppress "constraintParentInverseMatrix";
			editorTemplate -suppress "constraintRotateTranslate";
			editorTemplate -suppress "target";
		editorTemplate -endLayout;

		ccAttributeDispatcher( $nodeName );

		// include/call base class/node attributes
		AEtransformNoScroll $nodeName;

	editorTemplate -addExtraControls;
	editorTemplate -endScrollLayout;
}
