1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-14 13:30:48 +03:00

0027114: [Regression to 6.7] DistShapeShape does not find a solution edge-face

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.

test case for original issue added.
This commit is contained in:
aml
2016-01-29 09:11:46 +03:00
committed by abv
parent 5d7a048985
commit fa6d1712fd
5 changed files with 36 additions and 5 deletions

View File

@@ -192,7 +192,10 @@ void Extrema_ExtCS::Perform(const Adaptor3d_Curve& C,
}
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);
@@ -248,7 +251,9 @@ void Extrema_ExtCS::Perform(const Adaptor3d_Curve& C,
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);

View File

@@ -211,7 +211,7 @@ void Extrema_GenExtCS::Perform (const Adaptor3d_Curve& C,
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);