private int SearchIntersection(IVector <T> point)
        {
            if (point.Count != (Points.FirstOrDefault()?.Count ?? 0))
            {
                throw new Exception("Point has different dimension than pieces");
            }

            if (point.LessThan(Points[0]))
            {
                return(-1);
            }

            if (point.MoreOrEqualThan(Points[^ 1]))