Extrema Curve / Surface algorithm changed to perform more accurate search.
test case bug25232_8 - improvement, one additional intersection point is detected now.
test case bug23830 - normal behavior, position of extrema is changed.
Small correction of pro19653 test
test case for original issue added.
}
-
+ if (myS->IsUPeriodic())
+ NbU = 13;
+ if (myS->IsVPeriodic())
+ NbV = 13;
Extrema_GenExtCS Ext(C, *myS, NbT, NbU, NbV, cfirst, clast, ufirst, ulast,
vfirst, vlast, mytolC, mytolS);
Ext.Perform(C, NbT, tmin, tmax, mytolC); // to avoid overflow
}
else {
- if(myCtype == GeomAbs_Circle && NbT < 13) {
+ if((myCtype == GeomAbs_Circle && NbT < 13) ||
+ (myCtype == GeomAbs_BSplineCurve && NbT < 13))
+ {
NbT = 13;
}
Ext.Perform(C, NbT, mytolC);
TUVsup(3) = trimvsup;
// Number of particles used in PSO algorithm (particle swarm optimization).
- const Standard_Integer aNbParticles = 32;
+ const Standard_Integer aNbParticles = 48;
math_PSOParticlesPool aParticles(aNbParticles, 3);
--- /dev/null
+puts "========"
+puts "OCC27114"
+puts "========"
+puts ""
+##############################################
+# DistShapeShape gives not all solutions
+# Correct result is 2 solutions
+##############################################
+
+restore [locate_data_file bug27114.brep] aShape
+explode aShape
+set anInfo [distmini d aShape_1 aShape_2]
+
+# Check number of solutions
+if { [llength $anInfo] != 9 } {
+ puts "ERROR: Incorrect number of solutions"
+} else {
+ puts "OK: Two solutions is found"
+}
+
+# Check extrema distance
+set absTol 1.0e-10
+set relTol 0.001
+set aDist_Exp 0.0
+set aDist [dval d_val]
+checkreal "Distance value check" $aDist $aDist_Exp $absTol $relTol
\ No newline at end of file
puts "TODO OCC12345 ALL: Faulty : TEST FAILED"
-#puts "TODO OCC12345 ALL: Error : The length of result shape is"
+puts "TODO OCC12345 ALL: Error : The length of result shape is"
puts "============"
puts "PRO19653"
set square 1706.51
-set nb_v_good 4
-set nb_e_good 5
+set nb_v_good 5
+set nb_e_good 6
set nb_w_good 2
set nb_f_good 2
set nb_sh_good 1
set nb_sol_good 1
set nb_compsol_good 0
set nb_compound_good 0
-set nb_shape_good 15
+set nb_shape_good 17
set 2dviewer 1
if { [isdraw ext_1] } {
mkedge e ext_1
regexp {Mass +: +([-0-9.+eE]+)} [lprops e] full l
- if {$l > 1e-12} {
+ if {$l > 2.5e-12} {
puts "Error: invalid result"
}
renamevar ext_1 r_$i