works well with small size data. need one more step: if the bounding of axis angle do not overlap, we need to remove it by remove_if