--- /dev/null
+puts "========="
+puts "OCC21898"
+puts "========="
+puts ""
+###########################################################################
+# Empty result of intersection between a surface of revolution and a line
+###########################################################################
+
+restore [locate_data_file bug21898_intersect_1.brep] a
+explode a
+mksurface s a_1
+mkcurve l a_2
+mkcurve l1 a_3
+
+intersect r l s
+regexp {Point +: +([-0-9.+eE]+), +([-0-9.+eE]+), +([-0-9.+eE]+)} [dump r] full pnt1_x pnt1_y pnt1_z
+if { $pnt1_x == 0 || $pnt1_y == 0 || $pnt1_z == 0 } {
+ puts "Error: there is not intersection between surface and first curve"
+}
+
+intersect r1 l1 s
+regexp {Point +: +([-0-9.+eE]+), +([-0-9.+eE]+), +([-0-9.+eE]+)} [dump r1] full pnt2_x pnt2_y pnt2_z
+if { $pnt2_x == 0 || $pnt2_y == 0 || $pnt2_z == 0 } {
+ puts "Error: there is not intersection between surface and second curve"
+}
+
+vertex v r
+distmini d v a_1
+regexp {([-0-9.+eE]+)} [dump d_val] full dist1
+
+vertex v1 r1
+distmini d v1 a_1
+regexp {([-0-9.+eE]+)} [dump d_val] full dist2
+
+if { $dist1 > 1.e-7 || $dist2 > 1.e-7} {
+ puts "Error: Wrong 3d point between surface and curve"
+} else {
+ puts "OK: Correct 3d point between surface and curve"
+}
+
+axo
+set only_screen_axo 1