CCT.NUI.HandTracking.FingerPointDetector.FindPointInDistance C# (CSharp) Method

FindPointInDistance() private method

private FindPointInDistance ( Point candidatePoint, int startIndex, int>.Func directionFunc ) : Point
candidatePoint Point
startIndex int
directionFunc int>.Func
return Point
        private Point FindPointInDistance(Point candidatePoint, int startIndex, Func<int, int> directionFunc)
        {
            int resultIndex = startIndex;
            do
            {
                resultIndex = directionFunc(resultIndex);
                if (resultIndex < 0)
                {
                    resultIndex = contourPoints.Count - 1;
                }
                if (resultIndex >= contourPoints.Count)
                {
                    resultIndex = 0;
                }
            }
            while (Point.Distance(candidatePoint, this.contourPoints[resultIndex]) < this.settings.MinimumDistanceIntersectionPoints && resultIndex != startIndex);

            return this.contourPoints[resultIndex];
        }
    }