/**
 * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
 */
class NavMeshPath_AlongLine extends NavMeshPathConstraint
	native(AI);

cpptext
{
	// Interface
	virtual UBOOL EvaluatePath( FNavMeshEdgeBase* Edge, FNavMeshEdgeBase* PredecessorEdge, FNavMeshPolyBase* SrcPoly, FNavMeshPolyBase* DestPoly, const FNavMeshPathParams& PathParams, INT& out_PathCost, INT& out_HeuristicCost, const FVector& EdgePoint );
}

/** Direction to move in */
var Vector	Direction;

static function bool AlongLine( NavigationHandle NavHandle, Vector Dir )
{
	local NavMeshPath_AlongLine Con;

	if( NavHandle != None && !IsZero( Dir ) )
	{
		Con = NavMeshPath_AlongLine(NavHandle.CreatePathConstraint(default.class));
		if( Con != None )
		{
			Con.Direction = Dir;
			NavHandle.AddPathConstraint( Con );
			return TRUE;
		}
	}

	return FALSE;
}

function Recycle()
{
	Super.Recycle();
	Direction=vect(0,0,0);
}

defaultproperties
{
}