Files
OCCT/tests/bugs/moddata_2/bug22809_4
T
Pasukhin Dmitry 3270746444 Foundation Classes - Improve numerical robustness and evaluation efficiency (#1585)
- Stabilize B-spline interpolation and derivative evaluation on uneven knots.
- Add local surface span selection with periodic seam derivative handling.
- Optimize polynomial and rational surface cache first derivatives.
- Consolidate torus evaluators and preserve small components near singularities.
- Fix thin triangle projection and support independent optional BVH outputs.
- Preserve Bezier cusps when adjacent tangents have opposite directions.
- Apply Householder reflectors directly to right-hand sides without forming Q.
- Reuse QR and SVD decompositions and retain small modes under regularization.
- Make Newton convergence and PSO stagnation independent of objective scale.
- Add strict PSO domain handling and optimize particle restart selection.
- Use relative Laguerre residual checks to reject inaccurate roots.
- Add exact component restoration for directions, frames and transformations.
- Fix point mirror inversion and simplify location chain operations.
- Honor default thread pool launch limits in OSD_Parallel.
- Add flat map storage accounting and Precision::IsFinite.
- Default GUID copy assignment and extend GTest regression coverage.
2026-10-06 21:25:43 +01:00

37 lines
1.1 KiB
Plaintext
Executable File

puts "============"
puts "OCC22809"
puts "============"
puts ""
############################################################################################################
# BRepIntCS does not find intersections of an ellipsoid and a line passing through it's apex
###########################################################################################################
set BugNumber OCC22809
psphere a 100
scalexyz r2 a 2 1 1
line l -0.000001 0.0000000001 -100 0 0 1
BRepIntCS l r2
# Intersections at a pole can be reported more than once.
set foundLower 0
set foundUpper 0
foreach point [directory brics_*] {
if {![regexp {Point : ([-0-9.+eE]+), ([-0-9.+eE]+), ([-0-9.+eE]+)} [dump $point] full x y z]} {
puts "Error: Intersection result is not a point"
continue
}
checkreal "$point x" $x -1.0e-6 0 0.001
checkreal "$point y" $y 1.0e-10 0 0.001
if {abs($z + 100.0) <= 1.e-7} {
set foundLower 1
} elseif {abs($z - 100.0) <= 1.e-7} {
set foundUpper 1
} else {
puts "Error: Intersection point is not on either ellipsoid pole"
}
}
if {!$foundLower || !$foundUpper} {
puts "Error: Both ellipsoid poles must be found"
}