private void FindBasePoints(Contour contour, FingerPoint fingerPoint) { var fingerPointIndex = FindIndex(fingerPoint.Fingertip, contour); var distanceAdjustedOffset = (int)(offsetDistance * indexOffset / fingerPoint.Fingertip.Z); fingerPoint.BaseLeft = contour.GetPointAt(Rollover(fingerPointIndex - distanceAdjustedOffset, contour.Count)); fingerPoint.BaseRight = contour.GetPointAt(Rollover(fingerPointIndex + distanceAdjustedOffset, contour.Count)); var baseCenter = Point.Center(fingerPoint.BaseLeft, fingerPoint.BaseRight); fingerPoint.DirectionVector = Point.Subtract(fingerPoint.Fingertip, baseCenter).GetNormalizedVector(); }