Files
OCCT/tests/bugs/modalg_6/bug28795
Pasukhin Dmitry 39db714224 Modeling Data - Migrate BndLib to delegate to GeomBndLib (#1137)
- Replace monolithic switch statements in BndLib_Add3dCurve, BndLib_AddSurface, and BndLib_Add2dCurve with thin wrappers delegating to GeomBndLib_Curve, GeomBndLib_Surface, and GeomBndLib_Curve2d respectively.
- Remove now-dead internal helpers AddGenCurv, AddGenSurf, and BndLib_Box2dCurve. Public BndLib API is preserved unchanged.
- Implement proper BoxOptimal() in GeomBndLib_OffsetSurface: try the analytic equivalent surface first (offset plane -> plane, offset sphere -> sphere), then fall back to OtherSurface PSO sampling for general cases.
- Refactor GeomBndLib_OffsetCurve2d to share exact fast paths for line and circle offsets between Box() and BoxOptimal(), matching the 3D OffsetCurve pattern; BoxOptimal falls back to OtherCurve2d PSO for general curves.
- Update tests to reflect tighter bounds from GeomBndLib delegation.
2026-03-07 17:55:33 +00:00

32 lines
905 B
Plaintext

puts "======="
puts "OCC28795"
puts "======="
puts ""
##################################################
# Boolean operations corrupt the p-curve of the source planar face if "non-destructive" option is switched off
##################################################
set expected [list {UMin 0.0} {UMax 1.0} {VMin -1e+100} {VMax 0.0}]
box mb -0.5 -0.5 -0.5 1 1 1
explode mb F
prism pryz mb_1 1 0 0 SemiInf
box ab 0 -1 -1 2 2 2
explode ab f
explode pryz f
set bounds [xbounds pryz_1]
# check for expected result
for {set i 0} {$i < 4} {incr i} {
checkreal "[lindex $expected $i 0]" [lindex $bounds $i] [lindex $expected $i 1] 0.0 1.0e-7
}
# Make a simple Boolean operation, e.g. "bsection"
bsection rs ab_2 pryz_1
set bounds [xbounds pryz_1]
# check for expected result
for {set i 0} {$i < 4} {incr i} {
checkreal "[lindex $expected $i 0]" [lindex $bounds $i] [lindex $expected $i 1] 0.0 1.0e-7
}