A geometric reasoning approach to hierarchical representation for B-rep model retrieval