compute_normal