mirror of
https://github.com/Open-Cascade-SAS/OCCT.git
synced 2026-10-17 06:17:31 +08:00
- 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.
37 lines
1.1 KiB
Plaintext
Executable File
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"
|
|
}
|