has_crossing for 2D now fully correct