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:
@@ -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);
|
||||
|
@@ -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);
|
||||
|
||||
|
Reference in New Issue
Block a user