The number of points to divide the edge curve on a segments to compute a
boundary box does not provide a good tolerance. So a resultant boundary
box has an incorrect bounds. As a result the intersection near to a
tangent of curve does not detected.
Test case for issue CR25823
// get bounding box of pcurve
ShapeAnalysis_Curve sac;
Bnd_Box2d box;
- sac.FillBndBox ( c2d, f, l, 11, Standard_True, box );
+ const Standard_Integer aNbPoints = 41;
+ sac.FillBndBox ( c2d, f, l, aNbPoints, Standard_True, box );
Standard_Real umin, vmin, umax, vmax;
box.Get ( umin, vmin, umax, vmax );
--- /dev/null
+puts "================"
+puts "OCC25823"
+puts "================"
+puts ""
+#######################################################################################
+# Self Intersecting wire translated from STEP file
+#######################################################################################
+
+set BugNumber OCC25823
+
+set aFile [locate_data_file bug25823_280612.stp]
+stepread $aFile a *
+set aLog [checkshape a_1]
+
+if {$aLog == "This shape seems to be valid" } {
+ puts "OK ${BugNumber}"
+} else {
+ puts "Faulty ${BugNumber}"
+}
+
+smallview
+fit
+set only_screen_axo 1