mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-03 17:56:21 +03:00
1. B-spline cache was moved into separated classes: BSplCLib_Cache for 2D and 3D curves and BSplSLib_Cache for surfaces. 2. The cache is used now in corresponding adaptor classes (Geom2dAdaptor_Curve, GeomAdaptor_Curve and GeomAdaptor_Surface) when the curve or surface is a B-spline. 3. Algorithms were changed to use adaptors for B-spline calculations instead of curves or surfaces. 4. Precised calculation of derivatives of surface of revolution is implemented for the points of surface placed on the axis of revolution (Geom_SurfaceOfRevolution.cxx) 5. Small modifications are made to adjust algorithms to new behavior of B-spline calculation. 6. Test cases were modified according to the modern behavior. 7. Changes in BOPAlgo_WireSplitter, BOPTools_AlgoTools, BRepLib_CheckCurveOnSurface and ShapeAnalysis_Wire to use adaptors instead of geometric entities 8. Allow Geom2dAdaptor and GeomAdaptor in case of offset curve to use corresponding adaptor for basis curve Modification of test-cases according to the new behavior.
61 lines
1.8 KiB
Plaintext
Executable File
61 lines
1.8 KiB
Plaintext
Executable File
puts "============"
|
|
puts "OCC16119"
|
|
puts "============"
|
|
puts ""
|
|
#######################################################################
|
|
# Bug in GeomFill_Coons algorithm
|
|
#######################################################################
|
|
|
|
set BugNumber OCC16119
|
|
|
|
proc GetPercent {Value GoodValue} {
|
|
set Percent 0.
|
|
if {${GoodValue} != 0.} {
|
|
set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
|
|
} elseif {${Value} != 0.} {
|
|
set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
|
|
} else {
|
|
set Percent 0.
|
|
}
|
|
return ${Percent}
|
|
}
|
|
|
|
restore [locate_data_file OCC16119-c1.draw] c1
|
|
restore [locate_data_file OCC16119-c2.draw] c2
|
|
restore [locate_data_file OCC16119-c31.draw] c31
|
|
restore [locate_data_file OCC16119-c32.draw] c32
|
|
restore [locate_data_file OCC16119-c41.draw] c41
|
|
restore [locate_data_file OCC16119-c42.draw] c42
|
|
restore [locate_data_file OCC16119-cv.draw] cv
|
|
|
|
fillcurves s11 c1 c41 cv c31
|
|
fillcurves s12 cv c42 c2 c32
|
|
|
|
svalue s11 .5 .5 x1 y1 z1 dux1 duy1 duz1 dvx1 dvy1 dvz1
|
|
svalue s12 .5 .5 x2 y2 z2 dux2 duy2 duz2 dvx2 dvy2 dvz2
|
|
|
|
set deltaX [dval dvx1-dvx2]
|
|
set deltaY [dval dvy1-dvy2]
|
|
set deltaZ [dval dvz1-dvz2]
|
|
|
|
set percent_max 0.1
|
|
set good_deltaX -3.5527136788005009e-015
|
|
set good_deltaY -3.5527136788005009e-015
|
|
set good_deltaZ 8.8817841970012523e-016
|
|
|
|
set deltaX_percent [GetPercent ${deltaX} ${good_deltaX}]
|
|
puts "deltaX_percent = ${deltaX_percent}"
|
|
|
|
set deltaY_percent [GetPercent ${deltaY} ${good_deltaY}]
|
|
puts "deltaY_percent = ${deltaY_percent}"
|
|
|
|
set deltaZ_percent [GetPercent ${deltaZ} ${good_deltaZ}]
|
|
puts "deltaZ_percent = ${deltaZ_percent}"
|
|
|
|
if {${deltaX_percent} > ${percent_max} || ${deltaY_percent} > ${percent_max} || ${deltaZ_percent} > ${percent_max} } {
|
|
puts "${BugNumber}: Faulty"
|
|
} else {
|
|
puts "${BugNumber}: OK"
|
|
}
|
|
|