Automatic hexahedral meshing algorithms: from structured to unstructured meshes