p-hull: a generalization of convex hull, X-Y hull and bounding