mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-03 17:56:21 +03:00
The cause of the bug was computation of incorrect UVBounds in the method ShapeAnalysis::GetFaceUVBounds. In this patch the computation of a box for a 2D curve in the method ShapeAnalysis_Curve::FillBndBox() has been improved taking into account intervals of C2 continuity. Also the fix makes little extension of bounds when making the new surface in ShapeUpgrade_FaceDivide::SplitSurface(), so that all p-curves were fully inside. Test case for issue CR28553
25 lines
519 B
Plaintext
25 lines
519 B
Plaintext
puts "======="
|
|
puts "OCC28553"
|
|
puts "======="
|
|
puts ""
|
|
##################################################
|
|
# Incorrect result of the ShapeUpgrade_ShapeDivideContinuity algorithm
|
|
##################################################
|
|
|
|
restore [locate_data_file bug28553_sh.brep] f
|
|
|
|
#Split shape
|
|
DT_ShapeDivide r f
|
|
|
|
explode r F
|
|
mksurface s2 r_1
|
|
don r_1 s2
|
|
|
|
set fbnd [xbounds r_1]
|
|
set v2f [lindex $fbnd 3]
|
|
bounds s2 u1 u2 v1 v2
|
|
|
|
if {$v2f > [dval v2]} {
|
|
puts "Error: result face bounds are out of surface ($v2f > [dval v2])"
|
|
}
|