mirror of
https://github.com/Open-Cascade-SAS/OCCT.git
synced 2026-05-13 19:50:33 +08:00
- 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.
32 lines
905 B
Plaintext
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
|
|
} |