MantisBT - Open CASCADE
View Issue Details
0030160Open CASCADE[OCCT] OCCT:Modeling Algorithmspublic2018-09-25 11:102020-08-28 13:25
[OCCT] 7.6.0* 
0030160: DBRep_IsoBuilder builds wrong isolines for planar faces
DBRep_IsoBuilder builds wrong isolines for planar faces. Two planar faces are covers of the pipe, they are bounded by closed BSpline curves.
restore [locate_data_file OCC1477_bsplinewire_c0.brep] sp
restore [locate_data_file OCC1477_profile1_circle.brep] pr
wire pr pr

mksweep sp
addsweep pr -T -R
buildsweep result -R -S

explode result f
isos result_4 50
isos result_5 50
donly result_4 result_5
No tags attached.
related to 0031688closed bugmaster Visualization - Wrong ISO lines for a face created from BSpline 
Issue History
2018-09-25 11:10jgvNew Issue
2018-09-25 11:10jgvAssigned To => msv
2018-09-25 11:44msvAssigned Tomsv => emv
2018-09-25 11:44msvStatusnew => assigned
2018-09-25 16:39emvNote Added: 0079398
2018-09-26 09:13emvNote Edited: 0079398bug_revision_view_page.php?bugnote_id=79398#r19971
2018-09-26 09:28emvNote Edited: 0079398bug_revision_view_page.php?bugnote_id=79398#r19972
2019-08-12 17:59emvTarget Version7.4.0 => 7.5.0
2020-07-24 18:04kgvRelationship addedrelated to 0031688
2020-08-28 13:25emvTarget Version7.5.0 => 7.6.0*

2018-09-25 16:39   
(edited on: 2018-09-26 09:28)
The problem comes from the incorrect classification of the point (through Geom2dHatch_Classifier) relatively the face. The classification is incorrect due to incorrect intersection of two 2d curves - classification ray intersects the pcurve of the face. In this intersection one intersection point is missing.

Here is the draw script to reproduce the problem with 2d intersection:
pcurve result_4
dump result_4_1

line ray 0.0 -16.288656886901943 -0.13150161507367475 0.99131595630909475
trim ray ray 0.0 15.299078275810480

2dintersect ray result_4_1 -tol 1.e-9
# only one intersection point

Note, that saving the ray, restoring it and making intersection with restored one will lead to two intersection points. So, it looks like the problem is connected to floating point precision instability.
It has to be investigated further.