A shrunken edge algorithm for contact detection between convex polyhedral blocks